Как заменить несколько значений во фрейме данных с помощью dplyr


Вы можете использовать следующий базовый синтаксис для замены нескольких значений во фрейме данных в R с помощью функций из пакета dplyr :

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'),
 points=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

Теперь предположим, что мы хотели бы заменить следующие значения во фрейме данных:

  • столбец «конф»:
  • Замените «Восток» на «Е».
  • Замените «Запад» на «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
1 E G 22
2 E G 25
3 W G 29
4 W G 13
5 N F 18

Обратите внимание, что каждое из значений в столбцах «conf» и «position» было заменено определенными значениями.

Также обратите внимание, что значения в столбце «баллы» не изменились.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи с помощью dplyr:

Как перекодировать значения с помощью dplyr
Как заменить NA на ноль в dplyr
Как отфильтровать строки, содержащие определенную строку, с помощью dplyr

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