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

如何在R中生成类似SAS PROC FREQ的BMI测量次数累积频率表

解决SAS中重复测量数据的分组频率统计问题

步骤1:计算每个受试者的测量次数

先统计每个受试者(按ID分组)的BMI测量次数,生成包含ID和对应测量次数的中间数据集:

/* 假设原始数据集名为bmi_data,包含变量subject_id(受试者ID)和bmi(BMI值) */
proc sql;
    create table measure_counts as
    select subject_id, count(*) as measure_num
    from bmi_data
    group by subject_id;
quit;

步骤2:创建测量次数的分组变量

将测量次数分为三类:仅1次、仅2次、≥3次,生成分类变量measure_group:

data grouped_counts;
    set measure_counts;
    if measure_num = 1 then measure_group = '仅1次测量';
    else if measure_num = 2 then measure_group = '仅2次测量';
    else measure_group = '测量次数≥3次';
run;

步骤3:生成类似PROC FREQ的累积频率表

使用PROC FREQ生成包含频数、频率、累积频数、累积频率的表格,添加order=data保持分组顺序,nocol去掉列百分比(按需调整):

proc freq data=grouped_counts order=data;
    tables measure_group / missing nocol cum;
    title 'BMI测量次数分组频率统计';
run;

输出结果会包含:

  • 各分组的受试者人数(频数)
  • 各组占总人数的百分比(频率)
  • 累积到当前组的总人数(累积频数)
  • 累积到当前组的总百分比(累积频率)

补充说明

  • 如果原始数据存在缺失的BMI值,可在PROC SQL中添加where bmi is not missing过滤,避免将缺失值计入测量次数。
  • 若需要更简洁的分组标签(如"1次"、"2次"、"≥3次"),直接修改measure_group的赋值内容即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:55:18