我喜欢计算多个变量的百分比。这是每个变量(列)的计算总和,并通过频率除以每个变量和。我尝试获取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;
答案 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;