Есть два метода, которые вы можете использовать для переименования уровней фактора в 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