Dplyr: как изменить уровни факторов с помощью mutate()


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

 library (dplyr)

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

Этот конкретный синтаксис вносит следующие изменения в переменную команды во фрейме данных:

  • «H» становится «Ястребами»
  • «М» становится «Мавс».
  • «С» становится «Кавс»

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: изменение уровней коэффициентов с помощью 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 , чтобы изменить уровни переменной команды :

 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

Используя этот синтаксис, мы смогли внести следующие изменения в переменную команды во фрейме данных:

  • «H» становится «Ястребами»
  • «М» становится «Мавс».
  • «С» становится «Кавс»

Мы можем убедиться, что уровни факторов были изменены с помощью функции 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

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

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