proc report可以生成报表,基本格式:
proc report data= options; (options 可以是windows/WD表示将结果输出至单独的报表窗口,或者nowindows/nowd将结果输出至HTML结果窗口)
column variables ;(筛选待输出的变量,变量名与变量名之间用空格隔开)
where condition ;(使用where语句挑选输出的行)
define variables/ <usage> <attributes><options><justification><"column=heading">;
1)define 语句用于定义每一个输出列的样式,OPTIONS详解:
variables :变量名
usage : 变量用途,包括across,analysis,computed,display,group,order
attribute:定义列格式,包括FORMAT=,WIDTH=,SPACING=;
options:定义列呈现形式,DESCENDING,NOPRINT,NOZERO,PAGE
justification:定义列左对齐、右对齐或居中对齐,left,right,center;
column-heading:定义列标题
SPACING=:表示在选中列和左侧列间隔字符,默认是2;
WIDTH=:表示列宽,默认能容纳所有数据FOMAT后内容,但是对于没有FOMRAT的字符变量,则宽度默认是字符宽度,数值变量默认宽度是9;WIDTH=对HTML的结果窗口报表无用;
FORAMT=:可以DEFINE 语句使用format=选项,也可以单独使用FORMAT语句定义数据格式;
JUSTIFICATION: SAS默认数值右对齐,字符左对齐
2) PROC REPORT选项
COLUMN-HEADING 分行:默认是按照“/”分行,也可以在PROC REPORT 语句中使用SPLIT=" OPTIONS"来进行分行;举例如下:
headline:标题行下加上下划线
headskip:标题行下面写一个空行或者标题下划线下写入一个空行
headline和headskip选项对HTML结果窗口报表无用
3) DEFINE 语句 USAGE详解
a)SAS默认字符变量的用途是"DISPLAY",数值变量用途“ANALYSIS”,计算SUM统计量
b)order:order 选项可以让变量根据FORMAT后的格式按升序排序,定义了ORDER的变量将ORDER变量值相同集中显示,且在该变量值首行显示,举例如下:
c) group: 用于制作汇总表(SUMMARY REPORT),如果变量名存在DISPLAY用途,则GROUP作用与ORDER用途一致,如果制作汇总表则变量用途必须为ACROSS,ANALYSIS,COMPUTED,GROUP.
在analysis用途中,默认统计量则使用的是SUM(求和),除此之外还可以用下列描述统计量值:
d)across:将列内的数值从横向展示变成纵向展示
举例如下:
e)computed:不在数据集里面的变量,也不会添加至数据集,可以是数值也可以是字符,
使用方法如下:在column语句中添加新变量名;在define语句将该新变量的用途定义为computed;在comput 模块(compute block)生成该新变量的数值;值得注意的是新变量不能使用在该变量后面出现的变量值,只能使用该新变量前面出现的值。
举例如下: