2012-11-27 41 views
2

我有兩個因素,他們沒有相同數量的級別,但我想用一個因素來替換數據框架內的另一個因素中的值關於這些因素的名稱和順序。由另一個因素(內部數據框)替換一個因素

我的數據是這樣的,

x <- factor(c("one", "two", "three", "two", "three")) 
y <- factor(c(NA, "foo", NA, "bar", NA)) 

(df <- data.frame(x, y)) 

     x y 
1 one <NA> 
2 two foo 
3 three <NA> 
4 two bar 
5 three <NA> 

,這是我想結束了,

 x y  z 
1 one <NA> one 
2 two foo foo 
3 three <NA> three 
4 two bar bar 
5 three <NA> three 

我應該轉換的因素,一個字符向量?

回答

2

您可以使用levels(z) <- c(levels(y), levels(x))以便z具有所需的級別,但是基礎的整數值可能無法正確關聯。您最好使用as.character分配給z,然後轉換爲因子。

df$z <- as.factor(ifelse(is.na(df$y), as.character(df$x), as.character(df$y))) 
+0

親愛的裏卡多·薩波塔,感謝您抽出寶貴做出響應的時間。我不知道如何實施您的解決方案來達到預期的效果。你能否擴展你的榜樣?謝謝,埃裏克 –

+0

感謝您擴大您的答案,底線解決了我的問題。謝謝。 –

+1

Eric,沒問題。很高興幫助! –

相關問題