1.PROC MEANS
proc means 计算数值变量描述统计量,基本格式如下:
proc means data=data-set <statistic keyword> <options>;
run;
statistic-keyword:需要计算的描述统计量名称.默认输出N,MEAN,STD,MIN,MAX,当用户自定义名称时,默认的描述统计量不输出。
options:控制输出的内容和形式;
此处不设置VAR 语句会对数据集内的所有数值变量 计算N,MEAN,STD,MIN,MAX;
如下是statistic-keyword 可使用的字段:
OPTIONS 里面可以是MAXDEC=n 控制输出结果的小数位数;
2. CLASS 和BY 语句
在proc means中可以使用class或者by语句来计算分组的描述统计量,class variable语句不需要对分组变量进行排序,结果在一张大表上展示;BY variable需要对分组变量进行排序,结果在分每个小表展示;但是分组变量很多的时候使用BY 语句效率更高。
定义在CLASS 语句的变量不会被计算统计量。
3.OUTPUT 语句
OUTPUT可以将计算的描述统计量结果输出至SAS数据集:
OUTPUT OUT=DATA-SET <statistic-keyword=variable-names>
statistic-keyword:描述性统计量字段;如果不设置字段,默认输出N,MEAN,STD,MIN,MAX
variable-name:设定输出数据集中描述统计量的变量名,描述性统计量变量名的出现顺序也需要与VAR 语句内变量名出现顺序保持一致。
举例如下:(noprint表示不将结果打印出来)
4.PROC SUMMARY
PROC SUMMARY 与PROC MEANS 使用方法一致,两个的区别在与PROC MEANS 会默认把结果打印出来,加上NOPRINT选项则不打印结果,但是PROC SUMMARY 则不会默认打印,需要加PRINT 选项才打印结果。
5.PROC FREQ
PROC FREQ 默认生成单向表,包括frequency、percent、cumulative frequency、cumulative percent;
基本格式:
proc freq data=data-set;
tables variables/NOCUM ;(生成单向表,nocum选项表示不生产累积频数和累积频率
或者
tables variable1*variable2;variable1是行,variable2是列
如果不设置tables语句则对数据集内每个变量生成单向表;
生成交叉表:表内含有frequency、total percent、row percent、column percent
还可以和FORMAT语句连用:
或者创建N-way 交叉表
tables <varn....>*var2*var3;(varn表示分层变量,可以是1个也可以是多个,var2表示行,var3表示列)
6.TABLE 语句OPTION,CROSSLIST和LIST选项
crosslist选项将输出的2*2交叉表的列变量纵向的形式呈现出来分单独表展示出来,分层变量展示在表头,如下所示:
LIST将多个变量的交叉表按单向表形式展现在一张表内,但是与CROSSLIST不同的是所有的分层变量会单向表的一列,而不是将分层变量展示在表头(类似于proc means 中CLASS与BY 的区别),且同单向表一般生成frequency、percent、cumulative frequency、cumulative percent如下所示:
生成交叉表时会默认自动生成frequency,percent,rowpercent,column percent,因此可以使用nofreq、nopercent、norow、nocol来控制不生成某个统计量。