最初にいくつかの要素を作成しましょう。
F1 <- factor(c(1,2,20,10,25,3))
F2 <- factor(paste0(F1, " years"))
F3 <- F2
levels(F3) <- paste0(sort(F1), " years")
F4 <- factor(paste0(F1, " years"), levels=paste0(sort(F1), " years"))
次に、それらを見てください。
> F1
[1] 1 2 20 10 25 3
Levels: 1 2 3 10 20 25
> F2
[1] 1 years 2 years 20 years 10 years 25 years 3 years
Levels: 1 years 10 years 2 years 20 years 25 years 3 years
> F3
[1] 1 years 3 years 10 years 2 years 20 years 25 years
Levels: 1 years 2 years 3 years 10 years 20 years 25 years
> F4
[1] 1 years 2 years 20 years 10 years 25 years 3 years
Levels: 1 years 2 years 3 years 10 years 20 years 25 years
まず、F2のレベルの「予想される」順序はF1とは似ていないことに注意してください。ドキュメントを見ると、factor
その理由がわかります。レベルは、最初に入力を並べ替えることによって作成されます。F2の場合、これらは文字列であり、ソートでは長さが考慮されます(?)。
私が理解しにくいのは、F3とF4のレベル設定の違いです。F3では、ファクターの作成後にレベルを設定しましたが、F4では、ファクターの作成時に明示的にレベルを設定しました。F3では、levels()<-の使用は、純粋にレベルの再ラベル付けではありませんが、期待どおりにレベルを並べ替えることもありません。
誰かが違いを説明できますか?