Как группировать и фильтровать данные с помощью dplyr
Вы можете использовать следующий базовый синтаксис для группировки и фильтрации данных с помощью пакета dplyr в R:
df %>% group_by(team) %>% filter(any(points = = 10 ))
Этот конкретный синтаксис группирует кадр данных по столбцу, называемому командой , и фильтрует только те группы, где хотя бы одно значение в столбце точек равно 10.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: группировка и фильтрация данных с помощью dplyr
Предположим, у нас есть следующий кадр данных в R, содержащий информацию о различных баскетболистах:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
points=c(10, 15, 8, 4, 10, 10, 12, 12, 7))
#view data frame
df
team points
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10
7 C 12
8 C 12
9 C 7
Мы можем использовать следующий код, чтобы сгруппировать фрейм данных по значению в столбце «Команда» , а затем отфильтровать все группы, у которых нет хотя бы одного значения в столбце «Очки» , равного 10:
library (dplyr)
#group by team and filter out teams where no points value is equal to 10
df %>%
group_by(team) %>%
filter(any(points == 10 ))
# A tibble: 6 x 2
# Groups: team [2]
team points
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10
Обратите внимание, что все строки, где команда равна «C», фильтруются, поскольку в столбце очков для команды «C» нет значения, равного 10.
Обратите внимание, что это всего лишь пример фильтра, который мы можем применить.
Например, мы могли бы применить другой фильтр, в котором мы отфильтровываем команды, у которых хотя бы одно значение в столбце очков больше 13:
library (dplyr)
#group by team and filter out teams where no points value is greater than 13
df %>%
group_by(team) %>%
filter(any(points > 13 ))
# A tibble: 3 x 2
# Groups: team [1]
team points
1 to 10
2 to 15
3 to 8
Обратите внимание, что сохраняются только строки, в которых команда равна «А», поскольку это единственная команда, у которой хотя бы одно количество очков превышает 13.
Примечание . Полную документацию по функции фильтра в dplyr можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в dplyr:
Как выбрать первую строку по группе с помощью dplyr
Как фильтровать по нескольким условиям с помощью dplyr
Как фильтровать строки, содержащие определенную строку, с помощью dplyr