Как перекодировать значения с помощью dplyr


Иногда вам может быть интересно перекодировать определенные значения в кадре данных в R. К счастью, это можно легко сделать с помощью функции recode() из пакета dplyr.

В этом руководстве показано несколько примеров использования этой функции на практике.

Пример 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 A 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 A 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() здесь .

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.