【问题标题】:How to handle hyphens in yahoo finance tickers in Quantmod [duplicate]如何在Quantmod中处理雅虎金融代码中的连字符[重复]
【发布时间】:2013-10-12 16:21:42
【问题描述】:

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

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

【问题讨论】:

  • 将此作为几个月前提出的类似问题的副本关闭。

标签: r quantmod


【解决方案1】:

解决这个问题的最简洁的方法是不要依赖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

【讨论】:

  • 很棒的答案。非常感谢!
  • @johansson.lc 你也可以使用get。例如chartSeries(get("HM-B.ST"))... 或者,为了更好的图表标题:s &lt;- "HM-B.ST"; chartSeries(get(s), name=s)
  • @GSee 非常感谢你,这也很好用。
猜你喜欢
  • 1970-01-01
  • 2017-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
相关资源
最近更新 更多