我想根据地图数据框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个元素。
任何人都知道如何解决这个问题?
提前致谢,
基督教
答案 0 :(得分:4)
我们可以使用match
with(mapping, as.character(english)[match(l, german)])
#[1] "cat" "pig" NA "dog" "bird"