Dplyr: як змінити рівні факторів за допомогою mutate()


Ви можете використовувати наступний базовий синтаксис у dplyr , щоб змінити рівні факторної змінної за допомогою функції mutate() :

 library (dplyr)

df <- df %>% mutate(team=recode(team,
                                ' H ' = ' Hawks ',
                                ' M ' = ' Mavs ',
                                ' C ' = ' Cavs '))

Цей конкретний синтаксис вносить такі зміни до змінної team у кадрі даних:

  • “H” стає “Hawks”
  • “M” стає “Mavs”
  • «C» стає «Cavs»

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: зміна рівнів факторів за допомогою mutate()

Припустимо, у R є наступний кадр даних, який містить інформацію про різних баскетболістів:

 #create data frame
df <- data. frame (team=factor(c('H', 'H', 'M', 'M', 'C', 'C')),
                 dots=c(22, 35, 19, 15, 29, 23))

#view data frame
df

  team points
1:22 a.m.
2:35 a.m.
3 M 19
4 M 15
5 C 29
6 C 23

Ми можемо використовувати такий синтаксис із функцією mutate() пакета dplyr , щоб змінити рівні змінної team :

 library (dplyr)

#change factor levels of team variable
df <- df %>% mutate(team=recode(team,
                                ' H ' = ' Hawks ',
                                ' M ' = ' Mavs ',
                                ' C ' = ' Cavs '))

#view updated data frame
df

   team points
1 Hawks 22
2 Hawks 35
3 Mavs 19
4 Mavs 15
5 Cavs 29
6 Cavs 23

Використовуючи цей синтаксис, ми змогли внести такі зміни до змінної team у кадрі даних:

  • “H” стає “Hawks”
  • “M” стає “Mavs”
  • «C» стає «Cavs»

Ми можемо перевірити, що рівні факторів були змінені за допомогою функції Levels () :

 #display factor levels of team variable
levels(df$team)

[1] “Cavs” “Hawks” “Mavs” 

Також зауважте, що ви можете змінити лише один рівень фактора замість усіх.

Наприклад, ми можемо використати такий синтаксис, щоб замінити лише “H” на “Hawks” і залишити інші рівні факторів без змін:

 library (dplyr)

#change one factor level of team variable
df <- df %>% mutate(team=recode(team, ' H ' = ' Hawks '))

#view updated data frame
df

   team points
1 Hawks 22
2 Hawks 35
3 M 19
4 M 15
5 C 29
6 C 23

Зверніть увагу, що “H” було замінено на “Hawks”, але інші два рівні факторів залишилися без змін.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в dplyr:

Як видалити рядки за допомогою dplyr
Як вибрати стовпці за індексом за допомогою dplyr
Як фільтрувати рядки, що містять певний рядок, за допомогою dplyr

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

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