2012-11-21 40 views
8

我有以下兩個數據幀:的R - 添加值以數據幀相匹配的特定標準

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 

非常感謝提前!

回答

10

使用調用的函數match

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

的,因爲這些級別指定的方式,你也可以這樣做:

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

但是這隻能如果match每一行完全匹配按順序排列c1因子的等級。