我正在使用quantmod,我需要找出今天的收盘价和第50天的收盘价之间的差额。
我试过像这样
library(quantmod)
tickers = 'AAPL'
symbol = getSymbols(tickers,from="2014-04-01",auto.assign=F)
change =(tail(Cl(symbol), 50)[1]-tail(Cl(symbol), 1)[1])
change但是我无法减去它并得到这个错误。
Data:
numeric(0)
Index:
numeric(0)发布于 2015-09-07 17:23:38
对于xts对象,在执行操作之前,二进制数学和逻辑运算符总是根据它们的索引对齐这两个对象。因此,如果要在不同的时间戳上使用这些运算符,则需要使用lag对索引值进行适当的对齐。
require(xts)
data(sample_matrix)
x <- as.xts(sample_matrix)
x$diff50 <- lag(x$Close, 50) - x$Close请注意,lag.xts打破了lag.ts和lag.zoo的约定(在未来,正k引用数据)来使用更标准的正k约定来引用历史数据(而不是未来数据)。
如果您只想减去在xts对象的单个时间戳上出现的标量值,则可以使用coredata删除索引属性。
nr <- nrow(symbol)
change <- coredata(Cl(symbol)[nr-50]) - Cl(symbol)[nr]https://stackoverflow.com/questions/32443445
复制相似问题