R - 将值添加到符合特定条件的数据框

时间:2012-11-21 11:19:08

标签: r dataframe match

我有以下两个数据框:

d <- data.frame(c1 = c("A","A","B","C","A","C","D","D"))

map <- data.frame(c1 = c("A","B","C","D"), c2 = c(12,14,16,25))

如何在包含数据框架图中找到的相应值的数据框d中添加另一个名为“匹配”的列?因此数据框d应如下所示:

A 12
A 12
B 14
C 16
A 12
C 16
D 25
D 25

非常感谢提前!

1 个答案:

答案 0 :(得分:13)

使用名为match的函数:

d$match <- map$c2[match(d$c1,map$c1)]

由于指定了这些级别的方式,您还可以这样做:

d$match <- map$c2[d$c1]

但这仅在match中的每一行按顺序与c1因子的级别完全匹配时才有效。