如何使用R匹配两列不同数据帧?匹配的值应该在相同的位置对齐,缺失的值将是NAs。匹配不同数据帧的两列
输入:
df1$A: w x y
df2$B: x y z
预期的输出数据帧:
w x y NA
NA x y z
如何使用R匹配两列不同数据帧?匹配的值应该在相同的位置对齐,缺失的值将是NAs。匹配不同数据帧的两列
输入:
df1$A: w x y
df2$B: x y z
预期的输出数据帧:
w x y NA
NA x y z
嗯,这工作得很好...
df1$B <- ifelse(df1$A %in% df2$B, as.character(df1$A), NA)
df3 <- merge(df1,df2,by='B',all.x = T,all.y = T)
应该有更好的方式来表示这一点,但现在我可以弄清楚这一点。作为由@akrun评论中提到,您可以使用match
unique(rbind(cbind(as.character(df1$A), as.character(df2$B[match(df1$A, df2$B)])),
cbind(as.character(df2$B), as.character(df1$A[match(df2$B, df1$A)]))))
# [,1] [,2]
#[1,] "w" NA
#[2,] "x" "x"
#[3,] "y" "y"
#[4,] "z" NA
我们可以使用'match' – akrun
'合并(DF1,DF2,by.x = 'A',by.y = 'B',所有= TRUE)'? – Jaap
请阅读[问]的信息,以及如何给[可重现的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – Jaap