R 对列表中的数据帧进行编号(即,为每个数据帧创建一个单独编号的列)
我需要能够用一个单独的数字来区分大列表中的数据帧,以便在绑定数据帧后,我可以根据该数字对u进行分组(在我的情况下,不绑定列表是不可能的) 例如:R 对列表中的数据帧进行编号(即,为每个数据帧创建一个单独编号的列),r,list,dataframe,lapply,R,List,Dataframe,Lapply,我需要能够用一个单独的数字来区分大列表中的数据帧,以便在绑定数据帧后,我可以根据该数字对u进行分组(在我的情况下,不绑定列表是不可能的) 例如: 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)
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_rows
并指定.id
来创建分组索引变量
library(tidyverse)
bind_rows(df1[-3], df2[-3], .id = "number")
或者使用
Map
do.call(rbind, Map(cbind, list(df1[-3], df2[-3]), number = 1:2))
如果有多个对象名称具有相同的模式标识符“df1”、“df2”、“df247”,请使用
mget
获取列表中字符串标识符的值,然后使用bind_rows
bind_rows(mget(paste0("df", 1:247)), .id = "number")
请注意,在示例中,您正在创建一个不需要的NA
列。我如何将其与Lappy和一个大列表(247个元素)一起使用?@aazh您是否在全局环境中创建了247个对象“df1”、df2”、df3”、df247?我在全局环境中有247个真实数据对象的列表,我只是用了两个数据帧来复制example@aazh在这种情况下,只要执行bind_rows(lst1,.id=“number”)
即可,假设列表中所有数据集中的列名都相同
do.call(rbind, Map(cbind, list(df1[-3], df2[-3]), number = 1:2))
bind_rows(mget(paste0("df", 1:247)), .id = "number")