Как изменить порядок уровней факторов в R (с примерами)


Иногда вам может понадобиться изменить порядок уровней некоторой факторной переменной в R. К счастью, это легко сделать, используя следующий синтаксис:

factor_variable <- factor (factor_variable, levels =c('this', 'that', 'those', ...))

В следующем примере показано, как использовать эту функцию на практике.

Пример: переупорядочить уровни фактора в R

Во-первых, давайте создадим фрейм данных с одной факторной переменной и одной числовой переменной:

#create data frame
df <- data.frame(region= factor (c('A', 'B', 'C', 'D', 'E')),
 sales=c(12, 18, 21, 14, 34))

#view data frame
df

 region sales
1 A 12
2 B 18
3 C 21
4 D 14
5 E 34

Мы можем использовать аргумент level() для получения текущих уровней факторной переменной области :

#display factor levels for *region*
levels (df$region)

[1] "A" "B" "C" "D" "E"

И мы можем использовать следующий синтаксис для изменения порядка уровней факторов:

#re-order factor levels for *region*df$region <- factor (df$region, levels =c('A', 'E', 'D', 'C', 'B'))

#display factor levels for *region*
levels (df$region)

[1] "A" "E" "D" "C" "B"

Уровни факторов теперь расположены в том порядке, который мы указали с помощью аргумента уровней .

Если затем мы хотим создать гистограмму в R и упорядочить столбцы на основе уровней фактора региона , мы можем использовать следующий синтаксис:

#re-order data frame based on factor levels for *region*df <- df[ order ( levels (df$region)),]

#create barplot and place bars in order based on factor levels for *region*
barplot (df$sales, names =df$region)

Обратите внимание, как столбцы расположены в порядке уровней факторов, которые мы указали для региона .


Вы можете найти больше руководств по R на этой странице .