2017-07-19 228 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"