3

R でデータ フレーム列の因子レベルを抽出すると、自動的に (アルファベット順に) 並べ替えられます。どうすればこれを防ぐことができますか? つまり、レベルの順序をデータ フレームの列にある順序と同じにしたいと考えています。

data.frame(Names = c("Paul McCartney", "John Lennon")) -> my.data
levels(my.data$Names)

[1]「ジョン・レノン」「ポール・マッカートニー」

4

2 に答える 2

9

データを読み取った後、因子を再割り当てします。

x <- data.frame(x=letters[c(2,1,2)], y=1:3)
x$x
## [1] b a b
## Levels: a b
x$x <- factor(x$x, levels=unique(x$x))
x$x
## [1] b a b
## Levels: b a
于 2013-06-03T12:57:54.340 に答える
2

因子の順序付けを防ぎたい場合は、因子レベルを次のように具体的に渡す必要がありますlevels

factor(c("Paul McCartney", "John Lennon"), levels = c("Paul McCartney", "John Lennon"))
## [1] Paul McCartney John Lennon   
## Levels: Paul McCartney John Lennon

あなたの場合、を作成してに貼り付けるfactor前に を作成する必要があります。data.framefactordata.frame

f1 <- factor(c("Paul McCartney", "John Lennon"), levels = c("Paul McCartney", "John Lennon"))
my.data <- data.frame(Names = f1)
levels(my.data$Names)

## [1] "Paul McCartney" "John Lennon" 
于 2013-06-03T12:49:58.950 に答える