【发布时间】:2015-11-12 21:49:08
【问题描述】:
我正致力于在 R 中实现财务模型。我正在使用quantmod::getSymbols(),它返回一个 xts 对象。我正在使用来自谷歌(或雅虎)的股票数据和来自 FRED 的经济/收益数据。现在,在尝试进行比较时,我收到了不合格数组的错误。
require(quantmod)
fiveYearsAgo = Sys.Date() - (365 * 5)
bondIndex <- getSymbols("LQD",src="google",from = fiveYearsAgo, auto.assign = FALSE)[,c(0,4)]
bondIndex$score <- 0
bondIndex$low <- runMin(bondIndex,365)
bondIndex$high <- runMax(bondIndex,365)
bondIndex$score <- ifelse(bondIndex > (bondIndex$low * 1.006), bondIndex$score + 1, bondIndex$score)
# Error in `>.default`(bondIndex, (bondIndex$low * 1.006)) :
# non-conformable arrays
bondIndex$score <- ifelse(bondIndex < (bondIndex$high * .994), bondIndex$score - 1, bondIndex$score)
# Error in `<.default`(bondIndex, (bondIndex$high * 0.994)) :
# non-conformable arrays
print (bondIndex$score)
我在违规行之前添加了以下内容:
print (length(bondIndex))
print (length(bondIndex$low))
print (length(bondIndex$high))
我的结果是 5024、1256 和 1256。我希望它们的长度相同,每天都有收盘价、52 周高点和 52 周低点。我还想添加更多数据,因此这些天也有 50 天移动平均线。此外,真正影响我进步的是实施来自 FRED 的产量数据。我的理论是股票和债券市场有不同的假期,导致每天略有不同。在这种情况下,我想na.spline() 丢失的数据。
我知道我要走错路了,做我正在尝试的事情的最佳方法是什么?我想让每一行都是一天,然后有收盘价、高点、低点、移动平均线、当天的几个不同收益率的列,最后是一个“分数”,它具有基于当天其他数据的每日价值.
感谢您的帮助,如果您想要或需要更多信息,请告诉我。
【问题讨论】: