【发布时间】:2016-02-05 01:52:03
【问题描述】:
假设我有一个价格向量:
foo <- c(102.25,102.87,102.25,100.87,103.44,103.87,103.00)
我想获取 x 个周期前的百分比变化,例如,将其存储到另一个向量中,我将其称为 log_returns。我无法将向量 foo 和 log_returns 绑定到 data.frame 中,因为向量的长度不同。所以我希望能够将 NA 附加到 log_returns 中,这样我就可以将它们放在 data.frame 中。我想出了一种在向量末尾附加 NA 的方法:
log_returns <- append((diff(log(foo), lag = 1)),NA,after=length(foo))
但这只有在我查看前 1 个时期的百分比变化时才有帮助。无论我投入多少滞后,我都在寻找一种方法来填充 NA,以便百分比变化向量的长度等于 foo 向量
任何帮助将不胜感激!
【问题讨论】:
-
您可以改为存储在列表中
-
下面的答案很好,但更一般地说,如果你有一个不等长向量列表,你可以做类似
l <- list(1, 1:2, 1:5); data.frame(lapply(l, `length<-`, max(lengths(l))))
标签: r