如何合并2个数据框,然后更改合并数据框的列名。参见下面的示例。
> DF1
A B C
1 3 axe aa
2 6 base bb
3 9 lol cc
> DF2
D E F
1 6 ss gun
2 3 dd run
3 9 vv fun
> merge(x=DF1,y=DF2, by.x="A",by.y="D",all.x=TRUE)
A B C E F
1 3 axe aa dd run
2 6 base bb ss gun
3 9 lol cc vv fun
我的问题是如何将合并的E和F重命名为A.E和A.F 所以应该是这样。
A B C A.E A.F
3 axe aa dd run
6 base bb ss gun
9 lol cc vv fun
答案 0 :(得分:0)
我编写了safejoin软件包,它非常简洁地解决了这个问题。
# devtools::install_github("moodymudskipper/safejoin")
library(safejoin)
eat(DF1, DF2, .by = c(A = "D"), .prefix = "A")
# A B C A_E A_F
# 1 3 axe aa dd run
# 2 6 base bb ss gun
# 3 9 lol cc vv fun
要获得准确的预期输出,我们可以在
.prefix
参数:
eat(DF1, DF2, .by = c(A = "D"), .prefix = ~paste0("A.",.))
# A B C A.E A.F
# 1 3 axe aa dd run
# 2 6 base bb ss gun
# 3 9 lol cc vv fun
eat
默认情况下是增强的左连接,prefix
参数的设计是精确的
满足您的需求。