R 基于映射数据框编辑列表

R 基于映射数据框编辑列表,r,mapping,R,Mapping,我想基于映射数据帧编辑列表lmapping 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
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
大约有20000个元素

有人知道如何解决这个问题吗

提前感谢,


Christian

我们可以使用
match

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