SO スレッド: Reorder levels of a factor without changing order of valuesを読みましたが、これは正常に機能します。ただし、特定のユースケースでは、出力に困惑しています。
> df$mode
[1] write read write_with_journal write read write_with_journal
[7] write read write_with_journal
Levels: read write write_with_journal
ここで、因子の順序を " read write write_with_journal
"から " に変更してい"write read write_with_journal
ます。
> factor(df$mode, levels = c('write', 'read', 'write_with_journal'))
[1] <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
Levels: write read write_with_journal
以前のカテゴリ値「書き込み」、「読み取り」などはすべて NA に置き換えられていることに注意してください。なぜこれが起こっているのかわかりません。次のように(ファイルから読み取る代わりに)データフレームを手動で作成すると:
> p = factor(rep(c("write", "read", "write_with_journal"),3))
> factor(p, levels = c('write', 'read', 'write_with_journal'))
その後、すべてが順調です。なんで?