私はdplyr :: mutate()を使っていくつかの因子レベルをコード化しようとしていますので、すべての "MOT"と "CHI"因子レベルはそのままで、他はすべて "OTH"に変わります。なぜ私の因子レベルはdplyr :: mutate()で数値に変わりますか?
私のデータは次のようになります。
subj | speaker | word
1 MOT apple
1 CHI baby
1 SI1 baby
2 CHI dog
2 CHI cat
2 FAT cat
そして、私はこのようなルックスにそれをしたい:
subj | speaker | word
1 MOT apple
1 CHI baby
1 OTH baby
2 CHI dog
2 CHI cat
2 OTH cat
私のコードは次のようになりますときに私、しかし
new.df <- data %>%
dplyr::select(subj, speaker) %>%
mutate(speaker = factor(speaker),
speaker = ifelse(speaker %in% c("CHI", "MOT"), speaker, "OTH"))
このスクリプトを実行すると、いくつかのレベルが "OTH"に変換されますが、他のすべては数値に変わります。これは関係なく、私が因子(スピーカー)コマンドが含まれるかどうかに起こる:
subj | speaker | word
1 175 apple
1 86 baby
1 OTH baby
2 86 dog
2 86 cat
2 OTH cat
それは要因を変更していると「OTH」OK私ifelseコードのTRUE要素が問題であるように思われます。
多くの感謝!
あなたはifelseためにあなたの2番目の引数としてas.character(スピーカー)をお勧めします。 R因子は実際には整数です。話し手が性格を持っていたなら、ifelse操作の前に来る要因呼び出しで足で自分を撃っていました。それは後に意味をなさないかもしれない。 –
それは働いた!本当にありがとう!しかし、私はas.factor()コマンドを省略するとRが私に、スピーカーはすでに文字ベクトルであると私に伝えます。 –
Rの因子は整数です。因子の作成時に名前を付けることができる整数です。 –