有很多帖子阐明了我的问题的各个部分,但我无法将其放在一起并需要帮助。我正在尝试绑定许多具有不同行数但相同列数和数据表列表中的名称的数据表,但是:
这是一个小例子和来自其他帖子的各种部分解决方案:
# Create dummy list of data frames
df1 <- data.frame(border=c(1,2,3), value=c(4,5,6))
df2 <- data.frame(border=as.factor(c("A","B")), value=c(3,5.7))
df_lst <- list(df1, df2)
names(df_lst) <- c("df1","df2")
t1 <- as.data.table(df_lst)
t2 <- DataVisualizations::CombineCols(df1, df2)
t3 <- do.call(CombineCols,as.data.table(df_lst))
t4 <- rbindlist(df_lst)
任何人都可以帮我把这个难题放在一起,这样我就可以使用列表(而不是我在现实生活示例中没有的单个数据帧)作为唯一输入来得到类似的东西......
df1 df2 value
1: 1 NA 4
2: 2 NA 5
3: 3 NA 6
4: NA A 3.0
5: NA B 5.7
任何提示表示赞赏!
干杯, 马克
您可以使用
mapply
使用 data.frame 的名称重命名第一列,然后使用 `dplyr::bind_rows():
df_lst |>
mapply(FUN = \(x, y){names(x)[1] <- y; x},
x = _, y = names(df_lst), SIMPLIFY = FALSE) |>
dplyr::bind_rows()