归一化变量(除以总数)

时间:2016-03-15 16:59:23

标签: sas

我有一个权重变量 wprm ,它取整数值。我希望有一个权重"标准化",也就是说 wprm / sum(wprm)

我可以通过输出proc summary蚂蚁然后输出merge来将其与原始数据一起放回来,然后再划分我的 wprm 变量来实现,但似乎是有点沉重,有更简单的方法吗?

3 个答案:

答案 0 :(得分:2)

使用PROC STDIZE或PROC STANDARD - 它们都允许各种标准化方法。

proc stdize data=have method=sum out=want;
var wprm;
run;

答案 1 :(得分:0)

您可以从here抓取宏%simple_normalize

data test;
  do i=1 to 10;
     output;
  end;
run;

%simple_normalize(test,i);

答案 2 :(得分:0)

另一个常见选项是SQL,但它会在日志中发布警告/注释,许多人都不喜欢。

proc sql;
create table want as
select a.*, a.wprm/sum(a.wprm) as weight
from have;
quit;