根据dplyr的列值创建组(group_by)
我想根据条件使用dplyr进行分组。例如,如果我们有下表:根据dplyr的列值创建组(group_by),r,dplyr,R,Dplyr,我想根据条件使用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\u by与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\u 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
B==0
或B>0
?感谢您发布了不起作用的代码,这有助于了解您的方法。(我猜评论现在会因为以“+1”开头而被拒绝)这是一个很好的解决方案,但我认为可能不需要另一个函数就可以直接完成。不管怎样,它工作得很好。