7

我有一堆长度不同的数据帧,范围从大约。15,000 到 500,000。对于这些数据帧中的每一个,我想将它们分成较小的数据帧,每个数据帧有 300 行,我将对其进行进一步处理。我怎样才能做到这一点?

这(按行数拆分数据帧)提供了部分答案,但它不起作用,因为并非我所有的数据帧的长度都是 300 的倍数。

如果可以同时提供 plyr 和非 plyr 解决方案,将不胜感激。

谢谢!

4

2 回答 2

16

我不明白为什么需要 plyr 解决方案。split工作得很好,甚至哈德利本人在查看前面的问题时也没有提出 plyr/reshape2 解决方案:

split(dfrm, (0:nrow(dfrm) %/% 300)  # modulo division

确实会产生警告,但由于您期望得到非均分结果,因此您应该忽略它。

于 2013-08-09T03:59:09.637 回答
2

类似以下内容可能会有所帮助

numBreaks <- nrow(DAT)%/%300 + 1
for( i in seq(numBreaks)){
  smallDAT <- DAT[((i-1)*300+1):(min(nrow(DAT), i*300)), ]
.....
}
于 2013-08-09T03:55:22.943 回答