【发布时间】:2021-03-03 17:21:37
【问题描述】:
我需要合并多个具有重复列名的数据框。我正在使用dplyr::left_join 和purrr::reduce 在文件上迭代函数。 dplyr::left_join 的标准行为是为重复的 col 名称添加后缀,但这无助于确定变量来自哪些文件,除非您手头有代码。以下是我的情况的简化示例:
a <- tibble(id = 1:5, var=letters[1:5])
b <- tibble(var=letters[11:15], id=1:5)
c <- tibble(id = 1:5, var=letters[16:20], var2="a")
reduce(list(a,b,c), left_join, by="id")
# A tibble: 5 x 5
id var.x var.y var var2
<int> <chr> <chr> <chr> <chr>
1 1 a k p a
2 2 b l q a
3 3 c m r a
4 4 d n s a
5 5 e o t a
有没有办法使用数据框名称作为后缀,并将后缀强制所有重复的列?我想要的是:
# A tibble: 5 x 5
id var.a var.b var.c var2
<int> <chr> <chr> <chr> <chr>
1 1 a k p a
2 2 b l q a
3 3 c m r a
4 4 d n s a
5 5 e o t a
left_join 中有一个suffix 选项,但我如何在reduce 中使用它?
【问题讨论】: