1

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

但这似乎有点啰嗦。有谁知道更优雅的技术?

4

1 回答 1

1

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
于 2013-08-19T15:34:36.933 回答