我想根据条件使用 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))
最佳答案
使用 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
关于r - 使用 dplyr 根据列值创建组 (group_by),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58561268/