我有以下两个数据框:
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
提前谢谢了!
最佳答案
使用名为match
的函数:
d$match <- map$c2[match(d$c1,map$c1)]
并且由于指定了这些级别的方式,您还可以执行以下操作:
d$match <- map$c2[d$c1]
但这仅在
match
中的每一行按顺序完全匹配c1
因子的水平时才有效。
关于R-将值添加到符合特定条件的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13492161/