如何使用dplyr替换数据框中的多个值


您可以使用以下基本语法使用dplyr包中的函数来替换 R 中数据框中的多个值:

 library (dplyr)

df %>%
  mutate(var1 = recode(var1, ' oldvalue1 ' = ' newvalue1 ', ' oldvalue2 ' = ' newvalue2 '), 
         var2 = recode(var2, ' oldvalue1 ' = ' newvalue1 ', ' oldvalue2 ' = ' newvalue2 '))

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

示例:使用dplyr替换多个值

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

 #create data frame
df <- data. frame (conf=c('East', 'East', 'West', 'West', 'North'),
                 position=c('Guard', 'Guard', 'Guard', 'Guard', 'Forward'),
                 dots=c(22, 25, 29, 13, 18))

#view data frame
df

   conf position points
1 East Guard 22
2 East Guard 25
3 West Guard 29
4 West Guard 13
5 North Forward 18

现在假设我们要替换数据框中的以下值:

  • “配置”列:
    • 将“东”替换为“E”
    • 将“西”改为“W”
    • 将“北”替换为“N”
  • “位置”栏:
    • 将“守卫”更改为“G”
    • 将“前进”更改为“F”

我们可以使用mutate()recode()函数来做到这一点:

 library (dplyr)

#replace multiple values in conf and position columns
df %>%
  mutate(conf = recode(conf, ' East ' = ' E ', ' West ' = ' W ', ' North ' = ' N '), 
         position = recode(position, ' Guard ' = ' G ', ' Forward ' = ' F '))

  conf position points
1EG 22
2 EG 25
3 WG 29
4 WG 13
5 NF 18

请注意,“conf”和“position”列中的每个值都已替换为特定值。

另请注意,“点”栏中的值保持不变。

其他资源

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

如何使用 dplyr 对值重新编码
如何在 dplyr 中用零替换 NA
如何使用 dplyr 过滤包含特定字符串的行

添加评论

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