A: як використовувати %in% для фільтрації рядків із значенням у списку


Ви можете використовувати наступний базовий синтаксис з оператором %in% у R, щоб фільтрувати рядки, що містять значення, у списку:

 library (dplyr)

#specify team names to keep
team_names <- c(' Mavs ', ' Pacers ', ' Nets ')

#select all rows where team is in list of team names to keep
df_new <- df %>% filter(team %in% team_names)

Цей конкретний синтаксис фільтрує кадр даних, щоб зберегти лише рядки, де значення стовпця team дорівнює одному з трьох значень вектора team_names , який ми вказали.

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

Приклад: використання %in% для фільтрації рядків із значенням у списку

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

 #create data frame
df <- data. frame (team=c('Mavs', 'Pacers', 'Mavs', 'Celtics', 'Nets', 'Pacers'),
                 points=c(104, 110, 134, 125, 114, 124),
                 assists=c(22, 30, 35, 35, 20, 27))

#view data frame
df

     team points assists
1 Mavs 104 22
2 Pacers 110 30
3 Mavs 134 35
4 Celtics 125 35
5 Nets 114 20
6 Pacers 124 27

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

  • Mavs
  • Пейсери
  • Сітки

Для цього ми можемо використати такий синтаксис з оператором %in% :

 library (dplyr)

#specify team names to keep
team_names <- c(' Mavs ', ' Pacers ', ' Nets ')

#select all rows where team is in list of team names to keep
df_new <- df %>% filter(team %in% team_names)

#view updated data frame
df_new

    team points assists
1 Mavs 104 22
2 Pacers 110 30
3 Mavs 134 35
4 Nets 114 20
5 Pacers 124 27

Зауважте, що зберігаються лише рядки зі значенням Mavs, Pacers або Nets у стовпці team .

Якщо ви хочете відфільтрувати рядки, назви яких немає в списку назв команд, просто додайте знак оклику ( ! ) перед назвою стовпця:

 library (dplyr)

#specify team names to not keep
team_names <- c(' Mavs ', ' Pacers ', ' Nets ')

#select all rows where team is not in list of team names to keep
df_new <- df %>% filter( ! team %in% team_names)

#view updated data frame
df_new

     team points assists
1 Celtics 125 35

Зауважте, що зберігаються лише рядки, значення яких не дорівнює Mavs, Pacers або Nets у стовпці team .

Примітка : Ви можете знайти повну документацію функції фільтра в dplyr тут .

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

У наступних посібниках пояснюється, як виконувати інші типові операції в dplyr:

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

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

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