将行成功重采样到数据帧的列中(用于时间序列分析)

问题描述 投票:0回答:1

我有一个示例数据帧df:

  x1 x2 x3
1  1  6 11
2  2  7 12
3  3  8 13
4  4  9 14
5  5 10 15

现在,我想以以下方式对该数据帧重新采样:

转到第一行并提取k(例如3)行,并将其转换为列/向量:

1  6 11  2  7 12  3  8 13

然后,转到第二行并执行相同的操作:

2  7 12  3  8 13  4  9 14

对于第三行是

3  8 13  4  9 14  5 10 15

依此类推...

最后,所有重新采样的行又称为向量应重新绑定到新的数据帧。

我在寻找有效解决方案方面投入了很多精力,但是所有实现都非常缓慢。

如何有效地解决我的问题?

r resampling
1个回答
0
投票

这是一个简单的解决方案。我将结果放入列表中,但可以很容易地将它们cbind放入数据框。

dlist<-list()
for(i in 1:(nrow(data)-2)) {
  dlist[[i]]<-matrix(t(data[i:(i+2),]),nrow=1)
  }

dlist
[[1]]
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,]    1    6   11    2    7   12    3    8   13

[[2]]
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,]    2    7   12    3    8   13    4    9   14

[[3]]
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,]    3    8   13    4    9   14    5   10   15
© www.soinside.com 2019 - 2024. All rights reserved.