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

如何用SAS实现多条件下的频次统计?附示例数据集

用SAS实现指定医疗数据统计逻辑

示例数据集

IDGET_DRUGHOSPDATEQTY
AH111H1112021/12/313
AH112H1122022/1/104
AH110H1102022/1/135
AD110H1102022/1/146
AD111H1102022/1/163
AH112H1122022/1/234
AD113H1102022/1/305
AD114H1102022/2/135

统计需求

  • 步骤1:筛选GET_DRUG首字符为"D"的行,计算这些行与同一ID下所有更早行的日期差,仅保留日期差≤15天的记录
  • 步骤2:按每个D类行分组,统计对应符合条件的更早行中去重后的HOSP数量(HOSP_NUM)和QTY的总和(QTY_SUM)
  • 步骤3:统计满足HOSP_NUM≥2且QTY_SUM≥10的分组频次,预期结果为2,对应两组日期区间:"2021/12/312022/1/13"和"2022/1/102022/1/14"

SAS实现代码

1. 创建/导入原始数据集

如果是示例数据,可直接用DATA步创建;如果是现有大数据集,直接引用对应SAS库中的数据集即可:

/* 创建示例数据集(若为现有数据集可跳过此步,直接使用已有数据集名) */
data raw_data;
    input ID $ GET_DRUG $ HOSP $ DATE :yymmdd10. QTY;
    format DATE yymmdd10.;
    datalines;
A H111 H111 2021-12-31 3
A H112 H112 2022-01-10 4
A H110 H110 2022-01-13 5
A D110 H110 2022-01-14 6
A D111 H110 2022-01-16 3
A H112 H112 2022-01-23 4
A D113 H110 2022-01-30 5
A D114 H110 2022-02-13 5
;
run;

2. 执行步骤1:筛选D类行并计算日期差

通过自连接关联同一ID下更早的行,筛选符合日期差条件的记录:

proc sql;
    create table step1 as
    select 
        a.ID,
        a.GET_DRUG as D_GET_DRUG,
        a.DATE as D_DATE,
        b.GET_DRUG as ABOVE_GET_DRUG,
        b.HOSP as ABOVE_HOSP,
        b.DATE as ABOVE_DATE,
        b.QTY as ABOVE_QTY,
        intck('day', b.DATE, a.DATE) as DATE_DIFFERENCE
    from raw_data a
    left join raw_data b
        on a.ID = b.ID and b.DATE < a.DATE
    where substr(a.GET_DRUG, 1, 1) = 'D'
        and calculated DATE_DIFFERENCE <= 15;
quit;

3. 执行步骤2:统计HOSP去重数和QTY总和

按每个D类行的日期分组,统计对应更早行的指标,同时生成日期区间:

proc sql;
    create table step2 as
    select 
        cat(put(min(ABOVE_DATE), yymmdd10.), '~', put(max(ABOVE_DATE), yymmdd10.)) as DATE_RANGE,
        count(distinct ABOVE_HOSP) as HOSP_NUM,
        sum(ABOVE_QTY) as QTY_SUM
    from step1
    group by D_DATE;
quit;

4. 执行步骤3:统计符合条件的频次

直接筛选满足条件的分组并计数:

proc sql;
    select count(*) as FINAL_COUNT label='符合条件的组合频次'
    from step2
    where HOSP_NUM >= 2 and QTY_SUM >= 10;
quit;

运行上述代码后,FINAL_COUNT的结果为2,与预期一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:40:58