我有一个示例数据帧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
依此类推...
最后,所有重新采样的行又称为向量应重新绑定到新的数据帧。
我在寻找有效解决方案方面投入了很多精力,但是所有实现都非常缓慢。
如何有效地解决我的问题?
这是一个简单的解决方案。我将结果放入列表中,但可以很容易地将它们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