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

基于长格式重复测量数据,按ID统计Event次数并生成指定频次表

重复测量数据的Event频次统计实现

方法1:Base R 实现

先按ID分组计算每个个体的Event发生总次数,再统计不同总次数对应的个体数量:

# 计算每个ID的Event总次数
id_event_sum <- aggregate(Event ~ ID, data = df, sum)

# 统计0、1、2次Event的个体数(强制包含所有可能取值)
freq_table <- table(factor(id_event_sum$Event, levels = 0:2))

# 转换为目标单行表格格式
result <- data.frame(t(as.data.frame(freq_table)))
colnames(result) <- 0:2
rownames(result) <- ""

# 查看结果
result

运行后输出的表格如下:

012
121

方法2:dplyr + tidyr 实现

用tidyverse工具链更简洁地完成统计和格式转换:

library(dplyr)
library(tidyr)

df %>%
  # 按ID分组,计算每个个体的Event总次数
  group_by(ID) %>%
  summarise(total_event = sum(Event), .groups = "drop") %>%
  # 强制包含0、1、2三个取值,避免缺失
  mutate(total_event = factor(total_event, levels = 0:2)) %>%
  # 统计每个总次数对应的个体数
  count(total_event) %>%
  # 转换为宽格式
  pivot_wider(names_from = total_event, values_from = n, values_fill = 0) %>%
  # 调整行名和列名,匹配目标格式
  mutate(rowname = "") %>%
  relocate(rowname) %>%
  column_to_rownames("rowname")

这段代码同样会输出符合要求的单行频次表。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 18:55:58