如何使用 dplyr 对值重新编码


有时您可能有兴趣将某些值重新编码到 R 中的数据帧中。幸运的是,这可以使用 dplyr 包中的recode()函数轻松完成。

本教程展示了此功能实际使用的几个示例。

示例 1:重新编码数据框中的单个列

以下代码显示了如何对数据框中的单个列进行重新编码:

 library(dplyr)

#create dataframe 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

#view dataframe 
df

#change 'Win' and 'Loss' to '1' and '0'
df %>% mutate (result=recode(result, ' Win '='1', ' Loss '='0'))

       player points result
1 to 24 1
2 B 29 0
3 C 13 1
4 D 15 0

示例 2:重新编码数据框中的单个列并提供 NA 值

以下代码显示如何对数据框中的单个列进行重新编码,并将值NA分配给未显式分配新值的任何值:

 library(dplyr)

#create dataframe 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

#view dataframe 
df

#change 'Win' to '1' and give all other values a value of NA
df %>% mutate (result=recode(result, ' Win '='1', .default =NA_character_))

       player points result
1 to 24 1
2 B 29 <NA>
3 C 13 1
4 D 15 <NA>

示例 3:重新编码数据框中的多列

以下代码显示了如何在数据框中一次重新编码多列:

 library(dplyr)

#create dataframe 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

#recode 'player' and 'result' columns
df %>% mutate (player=recode(player, ' A '='Z'),
              result=recode(result, ' Win '='1', ' Loss '='0'))

       player points result
1 Z 24 1
2 B 29 0
3 C 13 1
4 D 15 0

您可以在此处找到 recode() 函数的完整文档。

添加评论

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