根据映射数据框编辑列表

时间:2017-07-19 14:05:35

标签: r mapping

我想根据地图数据框l

编辑列表mapping
mapping = data.frame(german=c("Hund", "Katze", "Vogel", "Schwein"),
                     english=c("dog", "cat", "bird", "pig"))

l = c("Katze", "Schwein", "Kuh", "Hund", "Vogel")

我想要的结果看起来像这样

l = c("cat", "pig", NA, "dog", "bird")

要求保留l中的顺序。此外,计算时间必须保持最小,因为l有大约20 000个元素。

任何人都知道如何解决这个问题?

提前致谢,

基督教

1 个答案:

答案 0 :(得分:4)

我们可以使用match

with(mapping, as.character(english)[match(l, german)])
#[1] "cat"  "pig"  NA     "dog"  "bird"