このコードはなぜですか:as.factor(c("\U201C", '"3', "1", "2", "\U00B5"))
、すべてのオペレーティングシステムで要因レベルの順序が異なりますか? Linuxのユニコード文字列のas.factor()がすべてのオペレーティングシステムで異なる結果を返すのはなぜですか?
:Windowsでは
> as.factor(c("\U201C",'"3', "1", "2","\U00B5")) [1] " "3 1 2 µ Levels: µ " 1 2 "3
:MacのOS上で
> as.factor(c("\U201C",'"3', "1", "2","\U00B5")) [1] " "3 1 2 µ Levels: "3 " µ 1 2
:
>as.factor(c("\U201C",'"3', "1", "2","\U00B5")) [1] " "3 1 2 µ Levels: "3 " 1 2 µ
私はいくつかの学生がRを提出していましたMardkownの割り当てはas.numeric(as.factor(dat$var))
でした。今ではこれがコード化する良い方法ではありませんが、出力の不一致が混乱と時間の無駄につながります。
OS XとFreeBSDは同じですが、どこが違うのかは分かりませんが、OS XとFreeBSDの類似点はどこにあるのでしょうか? – Jemus42
私は答えはありませんが、実際にはRの 'sort'関数に由来している可能性があります。' as.factor'のコードを見ると 'levels < - sort(unique.default(x))'となります。あなたのベクトル上でWindowsとMac OS上で 'sort'を試してみました。 – jav
ロケールのことです。具体的には 'LC_COLLATE'です。 'Sys.setlocale'で設定して何が起きているのかを見ることができます。 – alistaire