将数据框拆分为固定大小的行

时间:2013-08-09 03:38:51

标签: r split dataframe plyr

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

这个(Split up a dataframe by number of rows)提供了部分答案,但它不起作用,因为并非所有数据框的长度都是300的倍数。

如果可以提供plyr和非plyr解决方案,那将非常感激。

谢谢!

2 个答案:

答案 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)), ]
.....
}