Як замінити кілька значень у кадрі даних за допомогою 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’:
    • Замінити «Схід» на «E»
    • Змінити «Захід» на «W»
    • Замінити «Північ» на «N»
  • Колонка «Позиція»:
    • Змінити «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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *