5

この質問に基づいて、date.frameddを 2 つの要素で注文しbx

dd <- data.frame(b = factor(c("Hi", "Med", "Hi", "Low"), levels = c("Low", "Med", "Hi"), ordered = TRUE),
             x = factor(c("A", "D", "A", "C")), 
             y = c(8, 3, 9, 9),
             z = c(1, 1, 1, 2))

dd <- dd[with(dd, order(b, x)), ]
   b x y z
 Low C 9 2
 Med D 3 1
  Hi A 8 1
  Hi A 9 1

のレベルのdd$x順序は、dd$x の実際の順序を反映していませんが、アルファベット順です。

levels(dd$x)
[1] "A" "C" "D"

data.frame と同じレベルの順序、つまり、"C"、"D"、"A" が必要です。

もちろん、私はこれを行うことができました

dd$x <- factor(dd$x, levels = c("C","D","A"))

しかし、私は何か一般的なものが必要です。私は試した

dd$x <- factor(as.character(dd$x))

しかし、レベルのヘルプ状態:

デフォルトは、as.character(x) によって取得され、x の昇順でソートされた一意の値のセットです。

「ソートされていない」一意の値のセフを持つにはどうすればよいですか?

関数係数、特に引数レベル係数を理解しようとしましたが、理解が不十分です。

解決策を見つけましたが、適用できませんでした:

dd <- within(dd, x <- reorder(x, b))
4

2 に答える 2