Ответ: как использовать %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_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

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

  • Мавс
  • Пэйсерс
  • Сети

Для этого мы можем использовать следующий синтаксис с оператором %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

Обратите внимание, что в столбце команды сохраняются только строки со значением «Мавс», «Пэйсерс» или «Нетс».

Если вы хотите отфильтровать строки, в которых названия команды нет в списке названий команд, просто добавьте восклицательный знак ( ! ) перед именем столбца:

 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.

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

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в dplyr:

Как выбрать первую строку по группе с помощью dplyr
Как фильтровать по нескольким условиям с помощью dplyr
Как фильтровать строки, содержащие определенную строку, с помощью dplyr

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

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