2017-07-19 66 views
2

我想编辑基于映射数据帧列表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中的订单将被保留。而且由于l有大约20000个元素,所以计算时间必须保持在最小值。

任何一个想法如何解决这个问题?

由于提前,

基督教

回答

4

我们可以使用match

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