【问题标题】:SAS calculating percentages of multiple variablesSAS计算多个变量的百分比
【发布时间】:2020-03-13 01:01:00
【问题描述】:

我喜欢计算多个变量的百分比。那就是计算每个变量(列)的总和,然后将每个变量总和除以频率。我试图获取 proc 摘要以获取这两个统计信息并制作数组来计算百分比,但结果值似乎不正确,但日志中没有错误。我看到 proc sql 可以进行百分比计算,但我不知道如何对多个变量进行计算。 --一定不难,但我只是不知道如何列出它们。

如果你能指出我做错了什么 1) 以 proc 总结的方式,或者 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;

【问题讨论】:

    标签: sas


    【解决方案1】:

    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;
    

    【讨论】:

    • 好的。你得到了每个变量的 sum 和 ncount。那你将如何计算每个变量的百分比?
    • 我尝试使用 proc 方法将这些变量用于计算机百分比,因为这些变量是 0/1 数据,它以这种方式工作。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多