SAS--如何为虚拟变量创建变量百分比

SAS--如何为虚拟变量创建变量百分比,sas,percentage,Sas,Percentage,我正在寻找一种更好的方法来确定虚拟变量中类别的百分比 名为class1的伪变量有两个类别,即pass(1)和none pass(0)。我使用以下代码来计算通过率 proc means noprint data=HAVE; by date_l_; var class1 ; output out=result sum(class1)=t1; run; data WANT; set result; percentage=t1/_freq_; run; 但是,如果有更多类别,此方法

我正在寻找一种更好的方法来确定虚拟变量中类别的百分比

名为class1的伪变量有两个类别,即pass(1)和none pass(0)。我使用以下代码来计算通过率

 proc means noprint data=HAVE;
 by date_l_;
 var class1 ;
 output out=result sum(class1)=t1;
 run;

 data WANT;
 set result;
 percentage=t1/_freq_;
 run;

但是,如果有更多类别,此方法将不起作用。此外,因为我需要表示原始数据集的百分比,所以我应该使用额外的代码将所需的数据与原始数据集结合起来。在这种情况下,我想知道是否有更简单/其他的方法来确定虚拟变量中类别的百分比。

0/1变量的平均值就是比例

proc means noprint data=HAVE;
   by date_l_;
   var class1;
   output out=result mean=prop n=denom sum=count;
   run;

如果有三类呢?e、 g.0=无通过1=通过2=良好查看程序频率@Neal801