给定一个向量(数据框的列),我想创建一个滚动向量。
l = 0:10
将返回(窗口为 3):
[0, 1, 2], [1, 2, 3], [2, 3, 4], [3, 4, 5] ...
1) 滚动应用 r
是一个 9x3 矩阵,其每一行都是所要求的列表元素之一,并且split
将其转换为向量列表。尽管这给出了您所要求的内容,但您可能只想迭代该列表,在这种情况下,替换可能会更容易c
与您想在该迭代中使用的任何函数一起使用。例如rollapply(l, 3, sd)
library(zoo)
l <- 0:10 # test input
r <- rollapply(l, 3, c)
split(r, row(r))
giving:
$`1`
[1] 0 1 2
$`2`
[1] 1 2 3
$`3`
[1] 2 3 4
$`4`
[1] 3 4 5
$`5`
[1] 4 5 6
$`6`
[1] 5 6 7
$`7`
[1] 6 7 8
$`8`
[1] 7 8 9
$`9`
[1] 8 9 10
2) embed这也可以使用基本 R 来完成,如下所示:
r <- embed(l, 3)[, 3:1]
split(r, row(r))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)