我正在使用quantmod
:从雅虎下载数据
> getSymbols("HNZ-A.TO")
[1] "HNZ-A.TO"
Warning message:
In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m, :
downloaded length 70893 != reported length 200
该文件显示在我的R工作区中。数据在那里,我可以使用edit
来查看对象,但我不能使用对象。例如:
> head(HNZ-A.TO)
Error in head(HNZ - A.TO) : object 'HNZ' not found
我能做些什么来使用这个对象?
使用反勾号或get
。
HNZA.TO <- `HNZ-A.TO`
HNZA.TO <- get("HNZ-A.TO")
或者,您可以通过将呼叫中的auto.assign=FALSE
设置为getSymbols
来避免这一切。
HNZA.TO <- getSymbols("HNZ-A.TO", auto.assign=FALSE)
您可能还想通过以下方式调整列名:
colnames(HNZA.TO) <- make.names(colnames(HNZA.TO))
HNZ <- getSymbols('HNZ-A.TO', auto.assign=FALSE)
根据getSymbols的帮助页面。
另一种选择是setSymbolLookup
告诉getSymbols
在查询中使用不同的Symbol。
> setSymbolLookup(HNZ=list(src="yahoo", name="HNZ-A.TO"))
> getSymbols("HNZ")
[1] "HNZ"
好的,但您无法获得引号。也许另一种解决方案是:
HNZ<-读取.csv("http://ichart.finance.yahoo.com/table.csv?s=HNZ-A.TO&ignore=.csv",字符串AsFactors=F)
磁头
其优点是仍然可以轻松地获得所需的列。