R连接两个数据框,但仅保留重复的列之一

时间:2018-11-14 22:47:26

标签: r dplyr

我想加入两个具有重叠列的数据框。我目前正在这样做:

library(dplyr)
final <-  full_join(df1, df2, by = "Id")

此方法有效,除了df1df2共有的列之外,它为共享列加上.x.y前缀。什么是正确的联接方式,但只保留一个共享列实例,这样就不会生成前缀?

1 个答案:

答案 0 :(得分:1)

编辑新答案:

您可以使用我的软件包safejoin,进行完全连接并使用第一列处理冲突:

DF.write.format('csv').mode("overwrite").save("s3://test/test20180101.csv",header='true')

旧答案:

# devtools::install_github("moodymudskipper/safejoin")
library(safejoin)
safe_full_join(df1, df2, by= "Species", conflict = ~.x)
#   Petal.Width    Species Sepal.Width Petal.Length
# 1         0.2     setosa         3.0          1.4
# 2         1.4 versicolor         3.2          4.5

数据

full_join(df1, df2[c("Species",setdiff(names(df2),names(df1)))], by = "Species")
#   Petal.Width    Species Sepal.Width Petal.Length
# 1         0.2     setosa         3.0          1.4
# 2         1.4 versicolor         3.2          4.5