web-dev-qa-db-ja.com

rでマージまたは結合するときの.xおよび.y列の回避と名前変更

同じ名前の2つのデータフレームを結合することがよくあります。 .x列と.y列で終わらないように、結合ステップ内でこれを行う方法はありますか?名前は「original_mpg」や「new_mpg」の可能性がありますか?

  library(dplyr)
  left_join(mtcars, mtcars[,c("mpg",'cyl')], by=c("cyl"))
  names(mtcars) #ugh
13
runningbirds

現在、これは 未解決の問題dplyrです。結合の前または後にrenameを実行するか、ベースRからmergeを使用する必要があります。これにはsuffixes引数を指定します。

11
Matthew Plourde

デフォルトの接尾辞c(".x", ".y")は、長さ2の文字ベクトルとして渡すことでオーバーライドできます。

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

出力

 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
8
mpalanco