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

Chr*_*e90 13 r

我有一个示例数据框:

df <- data.frame(x = 1:112, y = runif(112))
Run Code Online (Sandbox Code Playgroud)

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

Ric*_*ven 27

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

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


Hol*_*ndl 15

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

require(dplyr) 
require(tidyr)

num_groups = 10

iris %>% 
   group_by((row_number()-1) %/% (n()/num_groups)) %>%
   nest %>% pull(data)
Run Code Online (Sandbox Code Playgroud)