合并或加入r时,避免重命名.x和.y列

run*_*rds 12 merge join r rename dplyr

我经常将两个具有相同名称的数据框连接在一起.有没有办法在join-step中执行此操作,以便我最终得到.x和.y列?这些名字可能是'original_mpg'和'new_mpg'?

  library(dplyr)
  left_join(mtcars, mtcars[,c("mpg",'cyl')], by=c("cyl"))
  names(mtcars) #ugh
Run Code Online (Sandbox Code Playgroud)

Mat*_*rde 11

目前,这是一个悬而未决的问题dplyr.你要么必须rename在加入之前或之后,要么使用merge基数R,这需要一个suffixes参数.


mpa*_*nco 8

c(".x", ".y")可以通过将默认后缀传递为长度为2的字符向量来覆盖它们:

library(dplyr)    
left_join(mtcars, mtcars[,c("mpg","cyl")], 
              by = c("cyl"), 
              suffix = c("_original", "_new")) %>% 
      head()
Run Code Online (Sandbox Code Playgroud)

输出量

 mpg_original cyl disp  hp drat   wt  qsec vs am gear carb mpg_new
1           21   6  160 110  3.9 2.62 16.46  0  1    4    4    21.0
2           21   6  160 110  3.9 2.62 16.46  0  1    4    4    21.0
3           21   6  160 110  3.9 2.62 16.46  0  1    4    4    21.4
4           21   6  160 110  3.9 2.62 16.46  0  1    4    4    18.1
5           21   6  160 110  3.9 2.62 16.46  0  1    4    4    19.2
6           21   6  160 110  3.9 2.62 16.46  0  1    4    4    17.8
Run Code Online (Sandbox Code Playgroud)