我希望使用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))
在使用dplyr
的group_by
时,每行只能属于一个组。如果需要加入多个组,则需要遍历值并反复进行筛选。以下是一种方法:
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
B==0
还是B > 0
? - M--