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

如何在SAS中保留每个SUBJID对应的首次有效体重数据

提取每个SUBJID的首次有效体重数据(SAS实现)

要保留每个SUBJID对应的首次非缺失体重记录,可以用以下两种简洁的SAS实现方式:

方法一:DATA步按组遍历筛选

利用BY分组和RETAIN变量标记已找到的有效记录,精准定位每组第一个有效数据:

DATA Want;
    SET Have;
    BY SUBJID;
    RETAIN FOUND 0; /* 标记当前组是否已找到有效记录 */
    
    /* 组内首次出现非缺失体重时输出并跳至下一组 */
    IF NOT MISSING(WEIGHT) AND NOT FOUND THEN DO;
        OUTPUT;
        FOUND = 1;
        RETURN; /* 跳过同组后续记录,提升效率 */
    END;
    
    /* 切换到新组时重置标记 */
    IF FIRST.SUBJID THEN FOUND = 0;
RUN;

方法二:PROC SQL子查询定位

通过子查询先获取每个SUBJID对应第一个有效体重的行号,再筛选目标记录:

PROC SQL;
    CREATE TABLE Want AS
        SELECT SUBJID, WEIGHT
        FROM Have
        WHERE (SUBJID, _N_) IN (
            SELECT SUBJID, MIN(_N_)
            FROM Have
            WHERE NOT MISSING(WEIGHT)
            GROUP BY SUBJID
        );
QUIT;

运行任意一种代码后,都会得到符合预期的结果:

SUBJID WEIGHT
01     88
02     101

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:20:46