纵向数据中不同观测次数的受试者统计优化方法问询
高效统计不同观测次数的受试者数量
方法一:使用dplyr链式操作
通过两次分组统计,一步得到所有观测次数对应的受试者数量:
library(dplyr) obs_count <- dd %>% # 第一步:统计每个受试者的观测次数 group_by(subject_id) %>% summarise(obs_times = n()) %>% # 第二步:按观测次数分组,统计对应受试者数量 group_by(obs_times) %>% summarise(subject_num = n()) # 查看结果 obs_count
运行后会得到对应示例数据的结果:
# A tibble: 3 × 2 obs_times subject_num <int> <int> 1 1 4 2 2 3 3 3 2
方法二:使用Base R原生函数
如果不想加载dplyr,用原生函数也能快速实现:
# 先统计每个受试者的观测次数,再统计各次数对应的受试者数量 obs_freq <- table(table(dd$subject_id)) # 转换为数据框格式,方便生成报告表格 as.data.frame(obs_freq, responseName = "subject_num")
转换后的数据框列名分别为Var1(观测次数)和subject_num(对应受试者数量),与dplyr方法的结果一致。
内容的提问来源于stack exchange,提问作者Maximilian
相关产品推荐
相关产品推荐

