Re: [R] get.hist.quote problem yahoo
Rene Braeckman writes: I had the same problem some time ago. Below is a function that I picked up on the web somewhere (can't remember where; may have been a newsletter). It's based on the tseries function but the difference is that this function produces a data frame with a column containing the dates of the quotes, instead of a time series object. I had to replace %d-%b-%y by %Y-%m-%d to make it work, probably as you stated because the format was changed by Yahoo. This issue should be taken care of now by a new release of tseries I put out two days ago. -k Hope this helps. Rene # -- # df.get.hist.quote() function # # Based on code by A. Trapletti (package tseries) # # The main difference is that this function produces a data frame with # a column containing the dates of the quotes, instead of a time series # object. df.get.hist.quote - function (instrument = ibm, start, end, quote = c(Open,High, Low, Close,Volume), provider = yahoo, method = auto) { if (missing(start)) start - 1970-01-02 if (missing(end)) end - format(Sys.time() - 86400, %Y-%m-%d) provider - match.arg(provider) start - as.POSIXct(start, tz = GMT) end - as.POSIXct(end, tz = GMT) if (provider == yahoo) { url - paste(http://chart.yahoo.com/table.csv?s=;, instrument, format(start, a=%mb=%dc=%Y), format(end, d=%me=%df=%Y), g=dq=qy=0z=, instrument, x=.csv, sep = ) destfile - tempfile() status - download.file(url, destfile, method = method) if (status != 0) { unlink(destfile) stop(paste(download error, status, status)) } status - scan(destfile, , n = 1, sep = \n, quiet = TRUE) if (substring(status, 1, 2) == No) { unlink(destfile) stop(paste(No data available for, instrument)) } x - read.table(destfile, header = TRUE, sep = ,) unlink(destfile) nser - pmatch(quote, names(x)) if (any(is.na(nser))) stop(This quote is not available) n - nrow(x) lct - Sys.getlocale(LC_TIME) Sys.setlocale(LC_TIME, C) on.exit(Sys.setlocale(LC_TIME, lct)) dat - gsub( , 0, as.character(x[, 1])) dat - as.POSIXct(strptime(dat, %Y-%m-%d), tz = GMT) if (dat[n] != start) cat(format(dat[n], time series starts %Y-%m-%d\n)) if (dat[1] != end) cat(format(dat[1], time series ends %Y-%m-%d\n)) return(data.frame(cbind(Date=I(format(dat[n:1],%Y-%m-%d)),x[n:1,nser]),row .names=1:n)) } else stop(Provider not implemented) } -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Daniele Amberti Sent: Friday, February 09, 2007 5:22 AM To: r-help Subject: [R] get.hist.quote problem yahoo I have functions using get.hist.quote() from library tseries. It seems that something changed (yahoo) and function get broken. try with a simple get.hist.quote('IBM') and let me kow if for someone it is still working. I get this error: Error in if (!quiet dat[n] != start) cat(format(dat[n], time series starts %Y-%m-%d\n)) : missing value where TRUE/FALSE needed Looking at the code it seems that before the format of dates in yahoo's cv file was not iso. Now it is iso standard year-month-day Anyone get the same problem? -- Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom http://click.libero.it/infostrada9feb07 __ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. __ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
[R] get.hist.quote problem yahoo
I have functions using get.hist.quote() from library tseries. It seems that something changed (yahoo) and function get broken. try with a simple get.hist.quote('IBM') and let me kow if for someone it is still working. I get this error: Error in if (!quiet dat[n] != start) cat(format(dat[n], time series starts %Y-%m-%d\n)) : missing value where TRUE/FALSE needed Looking at the code it seems that before the format of dates in yahoo's cv file was not iso. Now it is iso standard year-month-day Anyone get the same problem? -- Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom http://click.libero.it/infostrada9feb07 __ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
[R] get.hist.quote problem yahoo
I have functions using get.hist.quote() from library tseries. It seems that something changed (yahoo) and function get broken. try with a simple get.hist.quote('IBM') and let me kow if for someone it is still working. I get this error: Error in if (!quiet dat[n] != start) cat(format(dat[n], time series starts %Y-%m-%d\n)) : missing value where TRUE/FALSE needed Looking at the code it seems that before the format of dates in yahoo's cv file was not iso. Now it is iso standard year-month-day Anyone get the same problem? -- Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom http://click.libero.it/infostrada9feb07 __ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
[R] get.hist.quote problem yahoo
I have functions using get.hist.quote() from library tseries. It seems that something changed (yahoo) and function get broken. try with a simple get.hist.quote('IBM') and let me kow if for someone it is still working. I get this error: Error in if (!quiet dat[n] != start) cat(format(dat[n], time series starts %Y-%m-%d\n)) : missing value where TRUE/FALSE needed Looking at the code it seems that before the format of dates in yahoo's cv file was not iso. Now it is iso standard year-month-day Anyone get the same problem? -- Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom http://click.libero.it/infostrada9feb07 __ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Re: [R] get.hist.quote problem yahoo
I had the same problem some time ago. Below is a function that I picked up on the web somewhere (can't remember where; may have been a newsletter). It's based on the tseries function but the difference is that this function produces a data frame with a column containing the dates of the quotes, instead of a time series object. I had to replace %d-%b-%y by %Y-%m-%d to make it work, probably as you stated because the format was changed by Yahoo. Hope this helps. Rene # -- # df.get.hist.quote() function # # Based on code by A. Trapletti (package tseries) # # The main difference is that this function produces a data frame with # a column containing the dates of the quotes, instead of a time series # object. df.get.hist.quote - function (instrument = ibm, start, end, quote = c(Open,High, Low, Close,Volume), provider = yahoo, method = auto) { if (missing(start)) start - 1970-01-02 if (missing(end)) end - format(Sys.time() - 86400, %Y-%m-%d) provider - match.arg(provider) start - as.POSIXct(start, tz = GMT) end - as.POSIXct(end, tz = GMT) if (provider == yahoo) { url - paste(http://chart.yahoo.com/table.csv?s=;, instrument, format(start, a=%mb=%dc=%Y), format(end, d=%me=%df=%Y), g=dq=qy=0z=, instrument, x=.csv, sep = ) destfile - tempfile() status - download.file(url, destfile, method = method) if (status != 0) { unlink(destfile) stop(paste(download error, status, status)) } status - scan(destfile, , n = 1, sep = \n, quiet = TRUE) if (substring(status, 1, 2) == No) { unlink(destfile) stop(paste(No data available for, instrument)) } x - read.table(destfile, header = TRUE, sep = ,) unlink(destfile) nser - pmatch(quote, names(x)) if (any(is.na(nser))) stop(This quote is not available) n - nrow(x) lct - Sys.getlocale(LC_TIME) Sys.setlocale(LC_TIME, C) on.exit(Sys.setlocale(LC_TIME, lct)) dat - gsub( , 0, as.character(x[, 1])) dat - as.POSIXct(strptime(dat, %Y-%m-%d), tz = GMT) if (dat[n] != start) cat(format(dat[n], time series starts %Y-%m-%d\n)) if (dat[1] != end) cat(format(dat[1], time series ends %Y-%m-%d\n)) return(data.frame(cbind(Date=I(format(dat[n:1],%Y-%m-%d)),x[n:1,nser]),row .names=1:n)) } else stop(Provider not implemented) } -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Daniele Amberti Sent: Friday, February 09, 2007 5:22 AM To: r-help Subject: [R] get.hist.quote problem yahoo I have functions using get.hist.quote() from library tseries. It seems that something changed (yahoo) and function get broken. try with a simple get.hist.quote('IBM') and let me kow if for someone it is still working. I get this error: Error in if (!quiet dat[n] != start) cat(format(dat[n], time series starts %Y-%m-%d\n)) : missing value where TRUE/FALSE needed Looking at the code it seems that before the format of dates in yahoo's cv file was not iso. Now it is iso standard year-month-day Anyone get the same problem? -- Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom http://click.libero.it/infostrada9feb07 __ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. __ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.