目前我有以下xts
表。
AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2013-09-09 505.00 507.92 503.48 506.17 12116200 506.17
2013-09-10 506.20 507.45 489.50 494.64 26490200 494.64
2013-09-11 467.01 473.69 464.81 467.71 32031600 467.71
2013-09-12 468.50 475.40 466.01 472.69 14409400 472.69
2013-09-13 469.34 471.83 464.70 464.90 10649000 464.90
...
我可以使用quantmod
包来计算变化百分比Delt(AA[,"AAPL.Adjusted"],k=1)
但是我是R的新手并且想知道如何在没有包的情况下执行此操作并且不使用某种for循环。我猜它会像lag(k/k-1)-1
?谢谢。
答案 0 :(得分:1)
我从xts包pdf online,
中找到了它 AA$AAPL.change2<-AA[,"AAPL.Adjusted"]/lag(AA[,"AAPL.Adjusted"], k=1, na.pad = TRUE)-1
让我困惑的是如何区分电流与滞后,但事实证明只是调用对象就足够了,换句话说,如果对象是x,那么如果你想要将滞后的电流除以1,那么它只是x /滞后(x,k = 1) - 这可能是显而易见的,但对于新手来说真的很酷;)
答案 1 :(得分:1)
另一种选择是使用ROC
s <- get(getSymbols('AMZN')
s$pct <- ROC(Ad(s),1)
head(s)
AMZN.Open AMZN.High AMZN.Low AMZN.Close AMZN.Volume AMZN.Adjusted pct
2007-01-03 38.68 39.06 38.05 38.70 12405100 38.70 NA
2007-01-04 38.59 39.14 38.26 38.90 6318400 38.90 0.005154651
2007-01-05 38.72 38.79 37.60 38.37 6619700 38.37 -0.013718346
2007-01-08 38.22 38.31 37.17 37.50 6783000 37.50 -0.022934971
2007-01-09 37.60 38.06 37.34 37.78 5703000 37.78 0.007438929
2007-01-10 37.49 37.70 37.07 37.15 6527500 37.15 -0.016816091
答案 2 :(得分:0)
xts
包如今具有diff.xts
功能。
您可以指定滞后时间以及微分顺序。 对于股票收益,我建议使用lag = 1,difference = 1和log = TRUE。