假设我有一个像下面的两个数据帧:使用多个“by”合并/连接两个数据帧?
df1 = data.frame(ssuid=c(916860000285, 916860000285, 916925451999, 404454000285, 404454000285),
epppnum=c(101,102,101,101,102),
esex=c("M","F","M","M","F"))
df2 = data.frame(ssuid=c(916860000285, 916860000285, 916925451999, 404454000285, 404454000285),
epppnum=c(101,102,101,101,102),
erace=c(1,1,2,1,1))
我想将它们合并,而是一个独特的ID是ssuid和epppnum组合。我现在的解决方案是创建一个新变量,然后用它来合并。
library(dplyr)
df1 = df1 %>% mutate(uniqueID=paste(ssuid,epppnum,sep="/")) %>%
select(uniqueID, esex)
df2 = df2 %>% mutate(uniqueID=paste(ssuid,epppnum,sep="/"))%>%
select(uniqueID, erace)
df = left_join(df1,df2,by="uniqueID")
有没有更好的方法?
谢谢!