Dplyr:如何使用 mutate() 更改因子级别


您可以在dplyr中使用以下基本语法,通过mutate()函数更改因子变量的级别:

 library (dplyr)

df <- df %>% mutate(team=recode(team,
                                ' H ' = ' Hawks ',
                                ' M ' = ' Mavs ',
                                ' C ' = ' Cavs '))

此特定语法对数据框中的team变量进行以下更改:

  • “H”变成“鹰”
  • “M”变成“小牛”
  • “C”变成“骑士队”

以下示例展示了如何在实践中使用此语法。

示例:使用 mutate() 更改因子级别

假设我们在 R 中有以下数据框,其中包含有关各种篮球运动员的信息:

 #create data frame
df <- data. frame (team=factor(c('H', 'H', 'M', 'M', 'C', 'C')),
                 dots=c(22, 35, 19, 15, 29, 23))

#view data frame
df

  team points
1:22 a.m.
2:35 a.m.
3 M 19
4 M 15
5 C 29
6 C 23

我们可以使用以下语法和dplyr包的mutate()函数来更改team变量的级别:

 library (dplyr)

#change factor levels of team variable
df <- df %>% mutate(team=recode(team,
                                ' H ' = ' Hawks ',
                                ' M ' = ' Mavs ',
                                ' C ' = ' Cavs '))

#view updated data frame
df

   team points
1 Hawks 22
2 Hawks 35
3 Mavs 19
4 Mavs 15
5 Cavs 29
6 Cavs 23

使用此语法,我们能够对数据框中的team变量进行以下更改:

  • “H”变成“鹰”
  • “M”变成“小牛”
  • “C”变成“骑士队”

我们可以使用levels ()函数验证因子水平是否已经改变:

 #display factor levels of team variable
levels(df$team)

[1] “Cavs” “Hawks” “Mavs” 

另请注意,您可以选择仅更改一个因素水平,而不是全部。

例如,我们可以使用以下语法仅将“H”替换为“Hawks”,并保持其他因子级别不变:

 library (dplyr)

#change one factor level of team variable
df <- df %>% mutate(team=recode(team, ' H ' = ' Hawks '))

#view updated data frame
df

   team points
1 Hawks 22
2 Hawks 35
3 M 19
4 M 15
5 C 29
6 C 23

请注意,“H”被“Hawks”取代,但其他两个因子水平保持不变。

其他资源

以下教程解释了如何在 dplyr 中执行其他常见任务:

如何使用 dplyr 删除行
如何使用 dplyr 按索引选择列
如何使用 dplyr 过滤包含特定字符串的行

添加评论

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