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

R语言使用dplyr计算tibble各section分组下Yes类别占比的方法

解决方法

使用dplyr的group_by()按section分组后,在summarise()里对attendance == "Yes"的逻辑值求平均值即可,逻辑值中TRUE对应数值1、FALSE对应数值0,平均值就是"Yes"的占比。

示例完整代码:

library(dplyr)

# 构造原始数据集
attendance <- c("No", "Yes", "No", "Yes", "Yes", "No", "Yes")
section <- c("A", "A", "B", "B", "B", "B", "B")
tbl <- tibble(attendance, section)

# 计算每个分组的Yes占比
tbl %>%
  group_by(section) %>%
  summarise(yes_ratio = mean(attendance == "Yes"))

运行后输出结果:

# A tibble: 2 × 2
  section yes_ratio
  <chr>       <dbl>
1 A           0.5  
2 B           0.667

补充说明:

  • 如果attendance字段存在NA值,可在mean函数中添加na.rm = TRUE参数,即mean(attendance == "Yes", na.rm = TRUE),避免NA导致结果为空。
  • 如果需要输出百分比格式,可以调用scales包的percent()函数,将代码改为yes_ratio = scales::percent(mean(attendance == "Yes"))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:42:00