如何在 r 中重命名因子水平(附示例)


您可以使用两种方法来重命名 R 中的因子水平:

方法1:使用Base Rlevels()

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

方法 2:使用 dplyr 包中的 recode()

 library (dplyr)

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

以下示例展示了如何在实践中使用每种方法。

方法1:使用levels()函数

假设我们在 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”

以下代码显示如何使用levels()函数按名称重命名因子级别:

 #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() 函数

以下代码展示了如何使用 dplyr 包的recode()函数重命名因子级别:

 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 中重新排列因子水平

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注