我想根据情况与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))
答案 0 :(得分:5)
将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