是否有一种方法/替代match()
可以匹配多个向量?举例说明:
df1 = data.frame(c1=letters[1:10], c2=1:10, c4=10:1)
df2 = data.frame(c1=c('a','b','c','x'), c2=c(1,2,4,4))
如果我们想将df1$c4
数据附加到df2
的相应行,我们可以像这样使用match()
df1$c3 = paste(df1$c1, df1$c2)
df2$c3 = paste(df2$c1, df2$c2)
df2$c4 = df1$c4[match(df2$c3, df1$c3)]
但这看起来有点啰嗦。有谁知道更优雅的技术?
答案 0 :(得分:0)
merge()
功能应该是您正在寻找的功能。例如:
> merge(df1,df2,all.x=T)
c1 c2 c4
1 a 1 10
2 b 2 9
3 c 3 8
4 d 4 7
5 e 5 6
6 f 6 5
7 g 7 4
8 h 8 3
9 i 9 2
10 j 10 1
> merge(df1,df2,all.y=T)
c1 c2 c4
1 a 1 10
2 b 2 9
3 c 4 NA
4 x 4 NA