访问getSymbols返回的奇数命名对象

时间:2013-02-07 20:43:10

标签: r quantmod

我正在使用quantmod从Yahoo下载数据:

> 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

如何使用此对象?

4 个答案:

答案 0 :(得分:3)

使用反向标记或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))

答案 1 :(得分:3)

根据getSymbols的帮助页面

HNZ <- getSymbols('HNZ-A.TO', auto.assign=FALSE)

答案 2 :(得分:3)

另一个替代方法是setSymbolLookup告诉getSymbols在查询中使用其他符号。

> setSymbolLookup(HNZ=list(src="yahoo", name="HNZ-A.TO"))
> getSymbols("HNZ")
[1] "HNZ"

答案 3 :(得分:-1)

好的,但是你不能得到报价。也许另一种解决方案可能是:

HNZ&lt; -read.csv(&#34; http://ichart.finance.yahoo.com/table.csv?s=HNZ-A.TO&ignore=.csv&#34 ;, stringsAsFactors = F)

头(HNZ)

优势在于,您可以轻松获得所需的列。