使用SAS和PROC TABLATE,如何显示一个值子集而不是所有值子集的百分比?

使用SAS和PROC TABLATE,如何显示一个值子集而不是所有值子集的百分比?,sas,Sas,比如说,如果我有成绩(A、B、C、D、E、F),并且想显示在所有孩子中获得A或B的孩子的百分比和N,并且只显示这些信息,那么可以使用PROC TABLATE吗 我尝试使用多标签格式,但对于这些格式,我必须在格式中包含所有其他值,否则它们只会显示在PROC表格结果中。我要找的东西是: Kid Group----------Total N----------A or B N----------A or B % Group 1 100 25

比如说,如果我有成绩(A、B、C、D、E、F),并且想显示在所有孩子中获得A或B的孩子的百分比和N,并且只显示这些信息,那么可以使用PROC TABLATE吗

我尝试使用多标签格式,但对于这些格式,我必须在格式中包含所有其他值,否则它们只会显示在PROC表格结果中。我要找的东西是:

Kid Group----------Total N----------A or B N----------A or B %  
Group 1            100              25                25%
Group 2            100              10                10%

在PROC TABLATE中使用where语句对原始数据集进行子集。
e、 g.‘A’、‘B’中的where等级

将PROC表格中的原始数据集与where语句子集。
e、 g.‘A’、‘B’’中的成绩是无法马上用表格来完成的。手动操作可能是最简单的

data grades;
input name $ 1-15  gender $ 16-16 grade 19-20;
datalines;
Anderson       M  75
Aziz           F  67
Bayer          M  77
Burke          F  63
Chung          M  85
Cohen          F  89
Drew           F  49
Dubos          M  41
Elliott        F  85
Hazelton       M  55
Hinton         M  85
Hung           F  98
Jacob          F  64
Janeway        F  51
Judson         F  89
Litowski       M  85
Malloy         M  79
Meyer          F  85
Nichols        M  58
Oliver         F  41
Park           F  77
Patel          M  73
Randleman      F  46
Robinson       M  64
Shien          M  55
Simonson       M  62
Smith N        M  71
Smith R        M  79
Sullivan       M  77
Swift          M  63
Wolfson        F  79
Wong           F  89
Zabriski       M  89
;
run;
proc sort data=grades;by gender;run;
data _null_;
    set grades end=last;
    by gender;
    if _n_=1 then do;
       put @1 "gender" @8 "total" @16 "A_or_B" @27 "pct";
    end;
    if first.gender then do;
         A_or_B=0;
         total=0;
    end;
    total+1;
    if grade ge 80 and grade le 100 then A_or_B+1;
    if last.gender then do;
         pct=A_or_B/total;
         put @1 gender @8 total @16 A_or_B @24 pct nlpct.;
    end;
run;

想不出任何方法可以马上用tablate来完成。手动操作可能是最简单的

data grades;
input name $ 1-15  gender $ 16-16 grade 19-20;
datalines;
Anderson       M  75
Aziz           F  67
Bayer          M  77
Burke          F  63
Chung          M  85
Cohen          F  89
Drew           F  49
Dubos          M  41
Elliott        F  85
Hazelton       M  55
Hinton         M  85
Hung           F  98
Jacob          F  64
Janeway        F  51
Judson         F  89
Litowski       M  85
Malloy         M  79
Meyer          F  85
Nichols        M  58
Oliver         F  41
Park           F  77
Patel          M  73
Randleman      F  46
Robinson       M  64
Shien          M  55
Simonson       M  62
Smith N        M  71
Smith R        M  79
Sullivan       M  77
Swift          M  63
Wolfson        F  79
Wong           F  89
Zabriski       M  89
;
run;
proc sort data=grades;by gender;run;
data _null_;
    set grades end=last;
    by gender;
    if _n_=1 then do;
       put @1 "gender" @8 "total" @16 "A_or_B" @27 "pct";
    end;
    if first.gender then do;
         A_or_B=0;
         total=0;
    end;
    total+1;
    if grade ge 80 and grade le 100 then A_or_B+1;
    if last.gender then do;
         pct=A_or_B/total;
         put @1 gender @8 total @16 A_or_B @24 pct nlpct.;
    end;
run;

我想如果我这样做了,我会把所有成绩不是A和B的人都除掉,这意味着我的总N数会减少。我想如果我这样做了,我会把所有成绩不是A和B的人都除掉,这意味着我的总N数会减少。谢谢你的回复。我想我最终会通过一个真正的数据步骤中的一些数据操作来手动完成它,而不是像您演示的那样进行空报告。我认为这是一个公认的答案……你知道……手动方法:)谢谢你的回复。我想我最终会通过一个真正的数据步骤中的一些数据操作来手动完成它,而不是像您演示的那样进行空报告。我将此标记为……你知道……手动方法的公认答案:)