Сопоставьте значения во фрейме данных со значениями в другом фрейме данных и замените первое соответствующим шаблоном из другого фрейма данных

Сложный заголовок, но вот простой пример того, чего я пытаюсь достичь:

d <- data.frame(v1 = c(1,2,3,4,5,6,7,8), 
                v2 = c("A","E","C","B","B","C","A","E"))

m <- data.frame(v3 = c("D","E","A","C","D","B"), 
                v4 = c("d","e","a","c","d","b"))

Значения в d$v2следует заменить значениями в m$v4путем сопоставления значений из d$v2в m$v3

. Результирующий фрейм данных dдолжен выглядеть как:

v1    v4
1      a
2      e
3      c
4      b
5      b
6      c
7      a
8      e

Я пробовал разные вещи, и ближе всего я подошел к:d$v2 <- m$v4[which(m$v3 %in% d$v2)]

Я снова стараюсь избегать циклов for -! Должно быть возможно :-)как-то... ;)

15
задан user969113 17 July 2012 в 20:15
поделиться