如何处理Quantmod中雅虎财务代码中的连字符

时间:2013-10-12 16:21:43

标签: r quantmod

执行以下命令时,自动收报机HM-B.ST中的连字符被解释为减号。我试图将xts对象重命名为其他东西,但没有成功。有人知道这方面的解决方案吗?

>library(quantmod)
>getSymbols("HM-B.ST")
>chartSeries(HM-B.ST)
Error in inherits(x, "xts") : object 'HM' not found

1 个答案:

答案 0 :(得分:7)

解决此问题的最简单方法是不依赖getSymbols()'默认自动分配行为,而是将时间序列对象分配给您自己选择的更标准名称。例如:

HM.B.ST <- getSymbols("HM-B.ST", auto.assign=FALSE) # h.t. Joshua Ulrich
chartSeries(HM.B.ST)

如果出于某种原因, 希望时间序列保留其默认的带连字符的名称,您可以通过执行以下操作来访问它:

chartSeries(`HM-B.ST`)

原因它起作用的是反引号向R解析器发出信号,它们之间的字符将被解析为单个名称(也就是符号),而不是由减法运算符分隔的两个名称

要一劳永逸地推动这一点,请尝试以下内容:

assign("a really stupidly constructed name!*&^", 5)
`a really stupidly constructed name!*&^`
# [1] 5