如何减去xts中的行
How to subtract rows in xts
我正在使用 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)
对于 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
引用 future[=27= 中的数据]) 使用更标准的积极惯例 k
来参考历史(而非未来)数据。
如果只想减去xts对象的单个时间戳出现的标量值,可以使用coredata
删除索引属性。
nr <- nrow(symbol)
change <- coredata(Cl(symbol)[nr-50]) - Cl(symbol)[nr]
我正在使用 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)
对于 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
引用 future[=27= 中的数据]) 使用更标准的积极惯例 k
来参考历史(而非未来)数据。
如果只想减去xts对象的单个时间戳出现的标量值,可以使用coredata
删除索引属性。
nr <- nrow(symbol)
change <- coredata(Cl(symbol)[nr-50]) - Cl(symbol)[nr]