gpt4 book ai didi

r - 合并返回重复行

转载 作者:行者123 更新时间:2023-12-01 13:52:34 25 4
gpt4 key购买 nike

我有一个数据框 df1:

Column1   Column2
A B
A C

我想与 df2 合并:

Code      Country    Continent
A x e
B y f
C z g

获得:

Column1   Column2    Country1    Continent1
A B x e
A C x e

并为第 2 列中的国家再次执行此操作,以获得第 2 列的国家和大陆。

Column1   Column2    Country1    Continent1   Country2    Continent2
A B x e y f
A C x e z g

现在我正在使用合并功能:

df1<- merge(df1,df2,by.x="Column1",by.y="Code")

但是我得到了重复的列:

Column1   Column2    Country    Continent
A B x e
A B x e
A C x e
A C x e

我已经尝试了 all.x =TRUE 等的所有组合

有没有办法获得我想要的输出?最好具有合并功能或 plyr ...

提前致谢

最佳答案

使用 merge(),我认为这是一个两步操作...“a”是您的第一个问题,“c”是您的第二个问题。

df1 <- read.csv(text="Column1,Column2
A,B
A,C", stringsAsFactors=F)
df2 <- read.csv(text="Code,Country,Continent
A,x,e
B,y,f
C,z,g", stringsAsFactors=F)

a <- merge(df1,df2,by.x="Column1",by.y="Code")
b <- merge(df1,df2,by.x="Column2",by.y="Code")
c <- merge(a,b, by.x=c("Column1", "Column2"), by.y=c("Column1", "Column2"), all=TRUE)
> a
Column1 Column2 Country Continent
1 A B x e
2 A C x e
> c
Column1 Column2 Country.x Continent.x Country.y Continent.y
1 A B x e y f
2 A C x e z g

关于r - 合并返回重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30578308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com