匹配R中的多个向量

时间:2013-08-19 15:26:43

标签: r

是否有一种方法/替代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)]

但这看起来有点啰嗦。有谁知道更优雅的技术?

1 个答案:

答案 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