Иногда вам может быть интересно перекодировать определенные значения в кадре данных в 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() здесь .