r - 为列表中的数据框编号(即,为每个数据框创建一个带有单独编号的列)
问题描述
我需要能够用一个单独的数字来区分大列表中的数据框,以便group_by
在绑定数据框后可以基于该数字(在我的情况下,不可能只使用没有绑定的列表)。
例子:
df1 <- data.frame(matrix(ncol = 3, nrow = 8))
colnames(df1) <- c("a", "b")
df1$a <- seq(1, 8)
df1$b <- seq(4, 11)
df1
df2 <- data.frame(matrix(ncol = 3, nrow = 8))
colnames(df2) <- c("a", "b")
df2$a <- seq(2, 9)
df2$b <- seq(5, 12)
df2
list <- as.list.data.frame(c(df1, df2))
bind <- do.call("rbind", list)
预期结果:
bind
a b number
1 1 4 1
2 2 5 1
3 3 6 1
4 4 7 1
5 5 8 1
6 6 9 1
7 7 10 1
8 8 11 1
9 2 5 2
10 3 6 2
11 4 7 2
12 5 8 2
13 6 9 2
14 7 10 2
15 8 11 2
16 9 12 2
解决方案
我们可以使用bind_rows
并指定.id
创建分组索引变量
library(tidyverse)
bind_rows(df1[-3], df2[-3], .id = "number")
或base R
使用Map
do.call(rbind, Map(cbind, list(df1[-3], df2[-3]), number = 1:2))
如果有多个对象名称具有相同的模式标识符'df1'、'df2'、...、'df247',则使用mget
获取a中的字符串标识符的值,list
然后使用bind_rows
bind_rows(mget(paste0("df", 1:247)), .id = "number")
推荐阅读
- asp.net-mvc - 添加更多 65 列时数据表给出错误?
- swift - 主机应用程序关闭时如何在 Widget iOS 14 中重新加载从 CoreData 获取数据
- javascript - 在 javascript 中检索和修改 HTML div
- python - 如何修复 ValueError: not enough values to unpack (expected 2, got 1)
- javascript - 在 React 受控组件中清除 datalist 输入 onClick
- css - 我网站周围边框图像的 z-index 高于按钮,但我希望按钮的链接仍然可以点击,尽管 z-index 较低
- javascript - 制作
内容全宽和全高作为父级 - python - 在 Python 中停止递归函数
- flutter - 在颤动中剪裁一个行子
- terminal - Mac OSX (Apple Silicon) Homebrew 已安装但未找到 brew cmd