我有一堆不同长度的数据帧,范围从大约。 15,000到500,000。对于这些数据帧中的每一个,我想将它们分成更小的数据帧,每个数据帧有300行,我将对其进行进一步处理。我怎么能这样做?
这个(Split up a dataframe by number of rows)提供了部分答案,但它不起作用,因为并非所有数据框的长度都是300的倍数。
如果可以提供plyr和非plyr解决方案,那将非常感激。
谢谢!
答案 0 :(得分:14)
我不明白为什么需要一个plyr解决方案。 split
效果非常好,甚至当他查看前面的问题时,他也没有建议使用plyr / reshape2解决方案:
split(dfrm, (0:nrow(dfrm) %/% 300) # modulo division
是否会产生警告,但由于您期望得到一个不均匀的可分割结果,您应该忽略它。
答案 1 :(得分:2)
以下内容可能会有所帮助
numBreaks <- nrow(DAT)%/%300 + 1
for( i in seq(numBreaks)){
smallDAT <- DAT[((i-1)*300+1):(min(nrow(DAT), i*300)), ]
.....
}