You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R的dplyr分组汇总中统计count_col等于1的占比

R语言dplyr分组统计新增占比计算

需求说明

现有如下dplyr代码,用于对数据框df按label分组,计算count_col的均值、中位数及每组样本量,再按均值降序排列:

df |>
  dplyr::group_by(label) |>
  dplyr::summarize(avg_col = mean(count_col, na.rm = TRUE),
                   med_col = median(count_col, na.rm  = TRUE),
                   n = n()) |>
  dplyr::arrange(desc(avg_col))

需要在summarize语句中新增统计:count_col等于1的次数占该组总次数的百分比。

解决代码

直接在summarize中新增计算逻辑即可,利用逻辑值的数值特性实现占比统计:

df |>
  dplyr::group_by(label) |>
  dplyr::summarize(avg_col = mean(count_col, na.rm = TRUE),
                   med_col = median(count_col, na.rm  = TRUE),
                   n = n(),
                   pct_eq1 = mean(count_col == 1, na.rm = TRUE) * 100) |>
  dplyr::arrange(desc(avg_col))

实现说明

  • count_col == 1会生成一个逻辑向量,满足条件的元素为TRUE(数值等价于1),不满足的为FALSE(数值等价于0)
  • 对这个逻辑向量求均值mean(..., na.rm = TRUE),得到的就是满足条件的元素占组内非缺失元素的比例
  • 乘以100后转换为百分比格式,结果存储在pct_eq1列中

内容的提问来源于stack exchange,提问作者Eisen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 14:01:35