将数据帧拆分为相等的部分

时间:2016-05-10 18:03:03

标签: r

我有一个示例数据框:

df <- data.frame(x = 1:112, y = runif(112))

有没有办法打印数据框列表,其中列表的第一部分包含行1:10,第二部分11:20等,直到结束(111:112) ?

2 个答案:

答案 0 :(得分:27)

您可以使用split()rep()来创建分组。

n <- 10
nr <- nrow(df)
split(df, rep(1:ceiling(nr/n), each=n, length.out=nr))

答案 1 :(得分:5)

这可以通过使用tidyr / dplyr嵌套来解决

require(dplyr) 
require(tidyr)

num_groups = 10

iris %>% 
   group_by((row_number()-1) %/% (n()/num_groups)) %>%
   nest %>% pull(data)