仅使用tidyverse按机构名称计算分类变量的使用及响应率平均值
基于tidyverse的分组统计实现方案
计算逻辑说明
- portal_use平均值:指分组内portal_use取值为Yes的样本占所有非NA有效样本的比例
- 响应率:指分组内非NA的有效样本占分组总样本数的比例
完整实现代码
首先加载tidyverse库:
library(tidyverse)
导入你提供的数据集后执行统计:
# 分组统计 df %>% group_by(practice_name) %>% summarise( # 计算portal_use平均值 portal_use_mean = mean(portal_use == "Yes", na.rm = TRUE), # 计算响应率 response_rate = sum(!is.na(portal_use)) / n() )
运行输出结果
# A tibble: 3 × 3 practice_name portal_use_mean response_rate <chr> <dbl> <dbl> 1 al 0.75 0.571 2 il 0.667 0.75 3 ol 0.5 0.667
代码逻辑说明:
- 用
group_by(practice_name)按机构名称字段完成分组portal_use == "Yes"返回逻辑值,TRUE对应1、FALSE对应0,搭配mean(..., na.rm = TRUE)自动排除NA值后计算均值,等价于Yes的占比sum(!is.na(portal_use))统计每个分组非NA的有效样本数,n()返回每个分组的总样本数,二者比值即为响应率
内容的提问来源于stack exchange,提问作者GaB
相关产品推荐
相关产品推荐

