我想加入两个具有重叠列的数据框。我目前正在这样做:
library(dplyr)
final <- full_join(df1, df2, by = "Id")
此方法有效,除了df1
和df2
共有的列之外,它为共享列加上.x
和.y
前缀。什么是正确的联接方式,但只保留一个共享列实例,这样就不会生成前缀?
答案 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