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

如何在SAS Enterprise Guide中用SAS或PROC SQL统计二分类列的数量与占比?

在SAS Enterprise Guide中实现目标聚合的两种方法

假设你的原始表名为original_table,以下两种方法均可生成符合需求的结果表:

方法一:PROC SQL实现

通过条件计数和计算直接生成目标表,逻辑直观清晰:

PROC SQL;
    CREATE TABLE result_table AS
    SELECT 
        COUNT(CASE WHEN TARGET = 0 THEN ID END) AS Q_0,
        COUNT(CASE WHEN TARGET = 1 THEN ID END) AS Q_1,
        CALCULATED Q_0 / COUNT(*) AS P_0 FORMAT=8.1,
        CALCULATED Q_1 / COUNT(*) AS P_1 FORMAT=8.1,
        'XXX' AS COL1
    FROM original_table;
QUIT;
  • COUNT(CASE...):利用条件判断统计对应TARGET值的ID数量(因ID无重复,直接计数非空结果即可)
  • CALCULATED关键字:复用已计算出的Q_0/Q_1值,避免重复统计总行数
  • FORMAT=8.1:控制占比的小数位数,与示例输出格式匹配
  • 'XXX' AS COL1:直接生成固定值列

方法二:常规SAS DATA步实现

通过累加计数+最后一行计算的方式生成结果:

DATA result_table;
    SET original_table END=last_row;
    RETAIN Q_0 0 Q_1 0;
    IF TARGET = 0 THEN Q_0 + 1;
    ELSE IF TARGET = 1 THEN Q_1 + 1;
    
    IF last_row THEN DO;
        total = Q_0 + Q_1;
        P_0 = Q_0 / total;
        P_1 = Q_1 / total;
        COL1 = 'XXX';
        FORMAT P_0 P_1 8.1;
        OUTPUT;
    END;
    
    DROP ID TARGET;
RUN;
  • RETAIN:保留变量值,实现跨观测的计数累加
  • END=last_row:标记数据集的最后一行,仅在此时计算占比并输出结果
  • DROP:移除原始表中不需要的列,精简结果表结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:25:33