2009-11-24 149 views
1

如果我有分数(A,B,C,D,E,F),并且想要显示所有孩子中有A或B的孩子的百分比和N,并且只有这些信息,它可能与PROC TABULATE?使用SAS和PROC TABULATE,如何显示一个数值子集的百分比而不是所有子集?

我试过使用多标签格式,但那些我必须包含格式中的所有其他值,或者他们只显示在PROC TABULATE结果中。我正在寻找类似的东西:

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

回答

1

想不出有任何方法可以用手边的表格来做到这一点。手动执行它可能是最容易的。

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; 
+0

感谢您对cmjohns的回应。我想我最终会通过一些真实数据步骤中的数据操作手动完成,而不是像您演示的那样通过_NULL_报告。我将其标记为......的接受答案......您知道......手动方法:) – chucknelson 2009-11-29 16:15:20

0

将PROC中的原始数据集的子集设置为使用where语句制表。 例如('A','B')的成绩

+1

我想如果我这样做,我会消除除A和B以外的所有等级,这意味着我的总N将关闭。 – chucknelson 2009-11-25 02:18:48

相关问题