2

2 つの要素があり、レベルの数が同じではありませんが、1 つの要素を使用して、名前と要素の順序に基づいて、データ フレーム内の他の要素の値を置き換えたいと考えています。

私のデータは次のようになります。

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

因子を文字ベクトルに変換する必要がありますか?

4

1 に答える 1

2

z が必要なレベルを持つように使用できますがlevels(z) <- c(levels(y), levels(x))、基になる整数値が正しく関連付けられない場合があります。as.characterz を使用して割り当ててから factor に変換する方がよいでしょう。

例えば

df$z <- as.factor( ifelse(is.na(df$y), as.character(df$x), as.character(df$y)) )
于 2012-11-27T21:51:46.193 に答える