gpt4 book ai didi

r - 如何减去xts中的行

转载 作者:行者123 更新时间:2023-12-01 02:06:12 27 4
gpt4 key购买 nike

我正在使用 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 的数据)使用正值 k 的更标准约定引用历史(不是 future )数据。

如果只想减去在 xts 对象的单个时间戳处出现的标量值,可以使用 coredata删除索引属性。
nr <- nrow(symbol)
change <- coredata(Cl(symbol)[nr-50]) - Cl(symbol)[nr]

关于r - 如何减去xts中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32443445/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com