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

use*_*113 8 r match dataframe

我有以下两个数据框:

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))
Run Code Online (Sandbox Code Playgroud)

如何在数据框d中添加另一个名为"匹配"的列,其中包含数据框图中找到的相应值?所以数据框d应如下所示:

A 12
A 12
B 14
C 16
A 12
C 16
D 25
D 25
Run Code Online (Sandbox Code Playgroud)

提前谢谢了!

Sac*_*amp 13

使用名为的函数match:

d$match <- map$c2[match(d$c1,map$c1)]
Run Code Online (Sandbox Code Playgroud)

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

d$match <- map$c2[d$c1]
Run Code Online (Sandbox Code Playgroud)

但这仅适用于每行match完全匹配c1因子的级别的顺序.