r - 将数据框拆分为 5 部分并将多余的行放在最后
问题描述
例如,我有一个这样的数据框:
df <- data.frame(x = 1:104, y = runif(104))
我想把它分成 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)))
我想要的是df
分成 5 个部分,如果行数df
不能被 5 整除,我想把这些额外的行放在最后一部分z
感谢并感谢您的回复。
解决方案
你可以这样做:
p <- 5
n <- nrow(df)
split(df, cummax(as.numeric(gl(p, n%/%p, n))))
推荐阅读
- c# - 检索控制台输入作为参数的字符串数组
- selenium - 如何处理基于窗口的 PDF
- chaos - chaostoolkit 为什么我们要创建新的 nodepool 来制造混乱
- javascript - Web-Push 通知脚本在 Firefox 上工作,但在 Chrome 上不工作
- asp.net - 日期时间 - ModelState.IsValid 错误
- google-chrome - 如何在谷歌浏览器中禁用站点隔离?
- ios - UITableview中如何设计多个单元格的数组结构?
- sql - 使用子查询在同一张表上左连接
- trace - 如何以 csv 格式重放块 I/O 跟踪文件
- c# - 为什么我们不需要 DSN 来通过 ODBC 连接到 SQL Server (C#)