我有一堆长度不同的数据帧,范围从大约到。 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)), ]
.....
}