我正在使用quantmod包来获取股票数据。代码
Data = getSymbols('LON:ADN',src="google",auto.assign=FALSE, from = '2011-08-10')
按预期结果为xts,但仔细研究后显示2012-10-21(10月21日)是一个星期天的交易量,因此显然是错误的。其他几个星期日也包括在内。不幸的是,围绕周末的错误似乎已经使其余的数据不一致。
之前是否有人遇到类似的问题,使用quantmod获取代码,如果有,他们是否知道绕过它们的方法?
由于
答案 0 :(得分:3)
正如您在评论中提到的,这看起来像是时区问题,可能是由于xts
函数中的POSIX日期转换(请参阅this answer)。
当Sys.getenv("TZ")
为空字符串时,我能够在新的R会话中重现该问题。将时区设置为任何有效时区(并非所有测试时间),例如,"America/Chicago"
会产生预期日期,即没有星期日:
在一个新的会议上(2012年12月16日是星期天):
Sys.getenv("TZ")
# [1] ""
library(quantmod)
Data <- getSymbols('LON:ADN',src="google",auto.assign=FALSE, from = '2011-08-10')
tail(index(Data))
# [1] "2012-12-13" "2012-12-16" "2012-12-17" "2012-12-18" "2012-12-19" "2012-12-20"
然后更改时区
Sys.setenv(TZ="America/Chicago")
Data <- getSymbols('LON:ADN',src="google",auto.assign=FALSE, from = '2011-08-10')
tail(index(Data))
# [1] "2012-12-14" "2012-12-17" "2012-12-18" "2012-12-19" "2012-12-20" "2012-12-21"
没有星期天。