SAS计算多个变量的百分比

时间:2012-03-15 16:03:34

标签: sas

我喜欢计算多个变量的百分比。这是每个变量(列)的计算总和,并通过频率除以每个变量和。我尝试获取proc摘要以获取这两个统计信息并使数组计算百分比,但结果值似乎不正确但日志中没有错误。我看到proc sql可以进行百分比计算,但我不知道如何为多个变量做这个。 - 必须不难,但我不确定如何列出它们。

如果您可以在proc汇总方式中指出我做错了1),或者2)指导我如何编写proc SQL变量列表,这将是很好的。谢谢,

这是我写的代码:

1)

proc summary data=m3resp;
 var Lma1-Lma69;
 output out=sumofLma sum=sumLma1-sumLma69;
run;

data sumLmaout;
 set sumoflma;
 array pctma[69];
 do i=1 to 69;
  pctma[i]=input(cat(sumLma,i),5.)/_freq_;
 end;
 drop i;
run;

2)

PROC SQL;
 SELECT Lma1
 (Lma1/SUM(Lma1)) AS PCTLma1
 FROM m3resp;
QUIT;

1 个答案:

答案 0 :(得分:0)

PROC Means是汇总数值变量的绝佳工具。 (要阻止报告,请在PROC MEANS行上添加NOPRINT。)

data numbers;
 input num1 num2;
 datalines;
 10 5
 10 5
 10 5
 10 5
 10 5
 10 5
 10 5
 10 5
 10 5
 10 5
;

proc means n sum mean median data=work.numbers maxdec=2; 
 var num1 num2;
 output out=work.totals(drop=_freq_ _type_) 
  sum(num1 num2)=NUM1_TOTAL NUM2_TOTAL
  n(num1 num2)=NUM1_COUNT NUM2_COUNT;
run;