在R中为任意变量(即不是常规时间序列)制作滞后变量矩阵的最有效方法是什么?
例如:
输入:
x <- c(1,2,3,4)
Run Code Online (Sandbox Code Playgroud)
2滞后,输出:
[1,NA, NA]
[2, 1, NA]
[3, 2, 1]
[4, 3, 2]
Run Code Online (Sandbox Code Playgroud)
med*_*oll 21
你可以使用内置embed()函数实现这一点,其中第二个'dimension'参数等同于你所谓的'lag':
x <- c(NA,NA,1,2,3,4)
embed(x,3)
## returns
[,1] [,2] [,3]
[1,] 1 NA NA
[2,] 2 1 NA
[3,] 3 2 1
[4,] 4 3 2
Run Code Online (Sandbox Code Playgroud)
embed()在Joshua Reich 先前的回答中讨论过.(注意,我在前面添加了x和NAs来复制你想要的输出).
它的命名并不是特别好,但它对于涉及滑动窗口的操作非常有用和强大,例如滚动总和和移动平均值.
| 归档时间: |
|
| 查看次数: |
17312 次 |
| 最近记录: |