2017-03-05 41 views
1

我已經在堆棧溢出中看到了大約6個這樣的解決方案,但都使用'within'處理單個數據幀內的匹配。我需要跨越多個dataframes進入溶液:根據第二個數據幀列中的匹配替換數據幀列中的值

我有在數據幀的列1

DF1 $ A的值:1,2,1,3,2,6,4,5」 ,8,8,2,7,4等「。

我與 '密鑰',將這些代碼

DF2 $ A的第二數據幀:「1,2,3,4,5,6,7,8,9,10 「

DF2 $ B:」餡餅,披薩,漢堡包等「

如何更改DF1 $ A中的值以匹配DF2 $ B中的值?

回答

2

你可以用match做到這一點作爲一個指向特定位置在df2$B

# make some toy data 
set.seed(1) 
df1 <- data.frame(A = sample(seq(3), 10, replace = TRUE)) 
df2 <- data.frame(A = seq(3), B = c("pizza", "hot dog", "hamburger"), stringsAsFactors = FALSE) 

df1$B <- df2$B[match(df1$A, df2$A)] 

結果:

> df1 
    A   B 
1 3 hamburger 
2 1  pizza 
3 2 hot dog 
4 1  pizza 
5 1  pizza 
6 2 hot dog 
7 1  pizza 
8 2 hot dog 
9 3 hamburger 
10 2 hot dog 
+1

這壯觀的工作。謝謝!! – RickGrimesOfAlexandria

相關問題