如何在SAS中计算加权平均数(附实例)

1,109 阅读1分钟

你可以使用以下方法来计算SAS中的加权平均数。

方法1:计算加权平均数

proc sql;
    create table new_data as
    select sum(weight * value) / sum(weight) as weighted_average
    from original_data;
quit;

方法2:按组计算加权平均数

proc sql;
    create table new_data as
    select grouping_variable,
    sum(weight * value) / sum(weight) as weighted_average
    from original_data
    group by grouping_variable;
quit;

下面的例子说明了如何在SAS中用以下数据集来使用每种方法:

/*create dataset*/
data original_data;
    input sales_rep $ price amount;
    datalines;
A 8 1
A 5 3
A 6 2
B 7 2
B 12 5
B 14 4
;
run;

/*view dataset*/
proc print data=original_data;

例子1:计算加权平均数

下面的代码显示了如何计算价格变量的加权平均数,使用金额变量作为权重:

/*calculate weighted average of price*/
proc sql;
    create table new_data as
    select sum(amount * price) / sum(amount) as weighted_average
    from original_data;
quit;

/*view weighted average of price*/
proc print data=new_data;

价格的加权平均数变成了9.70588

例2:按组计算加权平均数

下面的代码显示了如何计算由sales_rep变量分组的价格变量的加权平均数:

/*calculate weighted average of price, grouped by sales_rep*/
proc sql;
    create table new_data as
    select sales_rep,
    sum(amount * price) / sum(amount) as weighted_average
    from original_data
    group by sales_rep;
quit;

/*view results*/
proc print data=new_data;

从输出结果中我们可以看到:

  • 销售代表A的价格加权平均数是5.8333
  • 销售代表B的价格加权平均数是11.8182

其他资源

下面的教程解释了如何在SAS中执行其他常见任务:

如何在SAS中按组计算平均值
如何在SAS中计算相关性
如何在SAS中创建频率表