你可以使用以下方法来计算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中执行其他常见任务: