例如我有一个这样的数据框:
df <- data.frame(x = 1:104, y = runif(104))
Run Code Online (Sandbox Code Playgroud)
我想把它分成 5 部分,末尾的额外 4 行位于df列表的最后一部分。
我已经尝试过这些代码,但它们要么将最后 4 行放入前 4 个部分,z要么将它们放入列表的第一部分。
z <- split(df, rep(1:5, length.out = nrow(df), each = ceiling(nrow(df)/5)))
z <- split(df, rep(1:5, length.out = nrow(df), each = floor(nrow(df)/5)))
Run Code Online (Sandbox Code Playgroud)
我想要的是df分成 5 部分,如果行数df不能被 5 整除,我想把这些额外的行放在最后一部分z
感谢并感谢您的回复。
你可以这样做:
p <- 5
n <- nrow(df)
split(df, cummax(as.numeric(gl(p, n%/%p, n))))
Run Code Online (Sandbox Code Playgroud)