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

如何在SAS中实现两个数值列相除并生成新计算列

SAS中两列相除生成再入院率字段的实现方法

基础实现(DATA步方式)

直接在数据步中通过赋值语句完成计算,是SAS里最常用的新建计算字段的方式,核心代码如下:

/* 替换成你自己的输入、输出数据集名称即可 */
data result_data;
    set source_data;
    /* 执行两列除法,生成新字段readmission_rate */
    readmission_rate = readmission / total_admission;
run;

常见优化处理

  • 除零/缺失值兼容:如果分母total_admission存在0值、缺失值,直接运算会返回缺失值,可通过条件判断自定义这类场景的返回值:
data result_data;
    set source_data;
    if total_admission > 0 then do;
        readmission_rate = readmission / total_admission;
    end;
    else do;
        /* 分母无效时可根据业务需求设为0、或者保留缺失值. */
        readmission_rate = .;
    end;
run;
  • 百分比格式展示:如果需要让结果直接以百分比形式显示,可以给字段绑定百分比格式,无需额外做乘100的计算:
data result_data;
    set source_data;
    readmission_rate = readmission / total_admission;
    /* 格式含义:总长度8位,保留2位小数的百分比格式 */
    format readmission_rate percent8.2;
run;

SQL语法实现

如果你习惯用SQL处理数据,也可以通过PROC SQL完成同样的计算:

proc sql;
    create table result_data as
    select 
        *,
        readmission / total_admission as readmission_rate format=percent8.2
    from source_data;
quit;

注意:不建议直接在原始数据集上覆盖写计算结果,避免原始数据被误修改无法恢复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 19:21:27