r - 使用 dplyr 根据列值创建组 (group_by)

标签 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_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/

相关文章:

r - 如何将打印(i/j)保存到输出文件?

r - 计算以分号分隔的累积唯一因素 按名称分组

R 按组识别数据帧更改模式

r - 如何在 Quarto 的 docx 输出中自定义页面大小,以使 R 中的各个页面具有不同的尺寸?

r - 使用 system.time() 对 R 代码计时时出现 "object not found"和 "unexpected symbol"错误

从字符串中删除 url

r - 如何更新多列 XTS 对象中的一行?

R 管道 (%>%) 功能 - 存储和部分使用?

r - 对于每个数据框行,找到位于特定范围内的点

r - 如何使用 dplyr 生成列相关随机变量