如何在 sas 中计算加权平均值(附示例)


您可以使用以下方法来计算 SAS 中的加权平均值:

方法一:计算加权平均值

 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 ;
At 8 1
At 5 3
At 6 2
B 7 2
B 12 5
B 14 4
;
run ;

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

示例1:计算加权平均值

以下代码显示如何使用amount变量作为权重来计算价格变量的加权平均值:

 /*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中创建频率表

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注