Как заменить несколько значений во фрейме данных с помощью 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'),
                 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

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

  • столбец ‘conf’:
    • Замените «Восток» на «Е».
    • Измените «Запад» на «W».
    • Замените «Север» на «Н».
  • Столбец «Позиция»:
    • Измените «Guard» на «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
Как заменить NA на Zero в dplyr
Как фильтровать строки, содержащие определенную строку, с помощью dplyr

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *