Создание групп (group_by) в зависимости от значения столбца с помощью dplyr - PullRequest
4 голосов
/ 25 октября 2019

Я хотел бы сделать группы с dplyr в зависимости от условия. Например, если у нас есть следующая таблица:

A      B 
1      0
10     1
5      1
6      2

Я бы создал группы, когда B = 0, еще один, когда B> 1, другой, когда B> 2, и так далее. Следующее приближение неверно, но, возможно, помогает понять:

df %>% 
   group_by(B > 0:2) %>% 
   summarize(Total = sum(A))

1 Ответ

5 голосов
/ 25 октября 2019

Строки не могут принадлежать более чем одной группе при использовании group_by с dplyr. Вам необходимо отобразить значения и повторно выполнить фильтрацию. Вот один из способов сделать это

purrr::map_df(0:2, ~df %>% filter(B>.x) %>% summarize(b_greater_than=.x, Total=sum(A)))
#   b_greater_than Total
# 1              0    21
# 2              1     6
# 3              2     0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...