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

如何用BASE SAS或SAS Enterprise Guide计算整个SAS表的全局平均值?

计算SAS表所有数据点的整体均值

问题说明

现有SAS表结构及数据如下:

column1column2column3
123
579
123

需要计算表中所有数据点的总和除以总个数,也就是(1+2+3+5+7+9+1+2+3)/9,得到整体均值。


BASE SAS编程实现

方法1:数据步直接累加

这种方法无需转置表,直接在数据步完成计算:

data _null_;
    /* 替换成你的实际表名 */
    set your_table end=eof;
    /* 初始化累加变量,retain确保值跨观测保留 */
    retain total_sum 0 total_count 0;
    /* 累加当前行所有列的数值 */
    total_sum = total_sum + sum(of column1-column3);
    /* 每一行有3个数据点,计数加3 */
    total_count = total_count + 3;
    /* 到最后一行时计算并输出结果 */
    if eof then do;
        overall_mean = total_sum / total_count;
        put "所有数据点的整体均值: " overall_mean;
        /* 如果需要把结果存到表,去掉_null_,并保留overall_mean变量后执行output */
    end;
    keep overall_mean;
run;

方法2:PROC SQL转置后计算

先把宽表转成每行一个数据点的长表,再直接计算均值:

/* 转置宽表为长表,所有数据点放到col1列 */
proc transpose data=your_table out=long_table;
    var column1-column3;
run;

/* 直接计算总和除以总个数,format设置输出格式 */
proc sql;
    select sum(col1)/count(col1) as overall_mean format=8.2
    from long_table;
quit;

SAS Enterprise Guide 操作步骤

  1. 打开SAS EG,选中目标数据表;
  2. 点击顶部任务菜单,选择描述性统计 -> 汇总统计;
  3. 在配置窗口中,把column1、column2、column3全部添加到分析变量列表;
  4. 切换到统计量选项卡,勾选总和和N(计数),点击运行;
  5. 把输出里所有列的总和相加,再除以所有列的N值之和,得到整体均值;
    • 更简便的方式:先通过数据菜单的转置工具把宽表转成长表,再对转置后的数值列做汇总统计,直接就能看到均值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:20:01