我有一堆长度不同的数据帧,范围从大约。15,000 到 500,000。对于这些数据帧中的每一个,我想将它们分成较小的数据帧,每个数据帧有 300 行,我将对其进行进一步处理。我怎样才能做到这一点?
这(按行数拆分数据帧)提供了部分答案,但它不起作用,因为并非我所有的数据帧的长度都是 300 的倍数。
如果可以同时提供 plyr 和非 plyr 解决方案,将不胜感激。
谢谢!
我不明白为什么需要 plyr 解决方案。split
工作得很好,甚至哈德利本人在查看前面的问题时也没有提出 plyr/reshape2 解决方案:
split(dfrm, (0:nrow(dfrm) %/% 300) # modulo division
确实会产生警告,但由于您期望得到非均分结果,因此您应该忽略它。
类似以下内容可能会有所帮助
numBreaks <- nrow(DAT)%/%300 + 1
for( i in seq(numBreaks)){
smallDAT <- DAT[((i-1)*300+1):(min(nrow(DAT), i*300)), ]
.....
}