Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 对列表中的数据帧进行编号(即,为每个数据帧创建一个单独编号的列)_R_List_Dataframe_Lapply - Fatal编程技术网

R 对列表中的数据帧进行编号(即,为每个数据帧创建一个单独编号的列)

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)

我需要能够用一个单独的数字来区分大列表中的数据帧,以便在绑定数据帧后,我可以根据该数字对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))
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")