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


Есть два метода, которые вы можете использовать для переименования уровней фактора в R:

Способ 1: используйте уровни() из Base R

levels(df$col_name) <- c('new_name1', 'new_name2', 'new_name3')

Способ 2: используйте recode() из пакета dplyr

library(dplyr)

data$col_name <- recode(data$col_name, name1 = 'new_name1', 
 name2 = 'new_name2',
 name3 = 'new_name3')

В следующих примерах показано, как использовать каждый из этих методов на практике.

Способ 1: Используйте функцию level()

Предположим, у нас есть следующий фрейм данных в R:

#create data frame
df <- data.frame(conf = factor(c('North', 'East', 'South', 'West')),
 points = c(34, 55, 41, 28))

#view data frame
df

 conf points
1 North 34
2 East 55
3 South 41
4 West 28

#view levels of 'conf' variable
levels(df$conf)

[1] "East" "North" "South" "West" 

В следующем коде показано, как переименовать один факторный уровень по имени с помощью функции level() :

#rename just 'North' factor level
levels(df$conf)[levels(df$conf)=='North'] <- ' N '

#view levels of 'conf' variable
levels(df$conf)

[1] "East" "N" "South" "West"

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

#rename every factor level
levels(df$conf) <- c('N', 'E', 'S', 'W')

#view levels of 'conf' variable
levels(df$conf)

[1] "N" "E" "S" "W"

Пример 2: Использование функции recode()

В следующем коде показано, как использовать функцию recode() из пакета dplyr для переименования уровней фактора:

library(dplyr)

#create data frame
df <- data.frame(conf = factor(c('North', 'East', 'South', 'West')),
 points = c(34, 55, 41, 28))

#recode factor levels
df$conf <- recode(df$conf, North = 'N',
 East = 'E',
 South = 'S',
 West = 'W')

levels(df$conf)

[1] "E" "N" "S" "W"

Примечание.Полную документацию по функции recode() можно найти здесь .

Дополнительные ресурсы

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