将数据帧拆分为任意数量的较小数据帧,且行数不超过N行

时间:2016-03-16 17:22:23

标签: r

我有许多数据帧,每个数据帧都有不同的行数。例如,我想将它们全部分解为每个不超过50行的较小数据帧。

所以,如果我有107行的数据帧,我想输出以下内容:

包含行1-50的数据框 包含行51-100的数据帧 包含行101-107

的数据框

我一直在阅读使用split()函数的许多示例,但我无法找到split()的任何用法或任何其他解决方案,而这些解决方案未预先定义数据帧的数量拆分或扰乱数据的顺序,或引入其他问题。

这似乎是一项如此简单的任务,我很惊讶我无法找到解决方案。

1 个答案:

答案 0 :(得分:4)

尝试:

split(df,(seq_len(nrow(df))-1) %/% 50)

前50行的共同点是什么?如果将行索引(小于1)的整数除法(%/%)除以50,则它们都将0作为结果。你可以猜到,行51-100给出1,依此类推。 (seq_len(nrow(df))-1) %/% 50基本上表示您要拆分的组。