将数据框分割成固定大小的行

问题描述 投票:0回答:2

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

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

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

r split dataframe plyr
2个回答
18
投票

我不明白为什么需要 plyr 解决方案。

split
工作得非常好,甚至哈德利本人在查看之前的问题时也没有建议 plyr/reshape2 解决方案:

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

确实会产生警告,但由于您期望得到不可整除的结果,因此应该忽略它。


2
投票

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

numBreaks <- nrow(DAT)%/%300 + 1
for( i in seq(numBreaks)){
  smallDAT <- DAT[((i-1)*300+1):(min(nrow(DAT), i*300)), ]
.....
}
© www.soinside.com 2019 - 2024. All rights reserved.