大家好,欢迎来到IT知识分享网。
目录
基本的语法格式
PROC REPORT <DATA=data-set> <options>;
RUN;
proc report data=miya.fbg;
run;
options
常用选项 | 作用 | 默认值 |
---|---|---|
HEADLINE | 在表头下方显示一条分割线,使表头与下方数据分隔开 | 无 |
BOX | 生成的表格包含所有的横竖框线。 | 无,没有任何框线 |
HEADSKIP | 在所有列标题下面或横线(HEADSKIP)下面写一个空行 | 无 |
SPLIT= | 指定标签的分隔符 | / |
MISSING | 保留缺失值(此处待验证!!!) | 不显示缺失值 |
COLUMN语句:
选择报表中出现的变量,并对其排序:否则默认使用数据集中所有变量。
如果使用的变量都是数值型变量,则默认做求和计算。否则输出全部观测。
proc report data=miya.fbg;
column height weight fbg;
run;
使用COLUMN语句在PROC REPORT过程中添加统计量
proc report data=miya.fbg;
column height,MEDIAN N;/*身高的中位数,身高的非缺失值个数*/
run;
proc report data=miya.fbg;
column fbg, (MIN MAX) (height weight),MEAN;/*fbg的最小值,fbg的最大值,height的均值,weight的均值*/
run;
where语句
用于筛选数据:
proc report data=miya.fbg;
where gender='男' and weight > 70;
run;
DEFINE语句:
为单个变量指定特定的options
基本格式:
DEFINE variable / <option(s)> <'column-heading'> ;
常用选项 | 作用 |
---|---|
format= | 指定数值型变量的显示格式 |
n、mean、std、median、 q1、min、max…… |
各种统计量 |
width= | 指定列宽,默认宽度:字符-变量长度,数值-9 |
SPACING= | 指定选定列和紧接其左侧的列之间的空白字符。默认为2 |
center,left,right | 表格中数据对齐方式;默认:数值-右对齐,字符-左对齐 |
‘column-heading’ | 指定列标题的标签,超过列宽会自动换行,也可通过“SPLIT=’‘ ”指定的分隔符。 |
6种变量显示方式
1、DISPLAY
显示每一条观测,字符变量默认用法。
2、ANALYSIS
指定变量为分析变量,并指定统计量(默认SUM),数值型变量的默认用法。
3、ORDER
指定变量为顺序变量,相同变量值,只显示一个,显示每一条观测
并且这些行按顺序(升序)排列,DESCENDING(降序)。生成listing report。
可以在ORDER中定义ORDER选项:
其中ORDER=DATA时,排序规则为数据集中所有观测值的出现顺序。
举例来源于SAS官网案例改编,原网址:24542 – 当在 DEFINE 语句中指定 ORDER=DATA 选项时,如何在 PROC 报告输出中获取输入数据集的确切顺序 (sas.com)https://support.sas.com/kb/24/542.html大家可以自行体会感受一下区别~
data test;
input var1 $ var2;
datalines;
A 1
A 4
B 1
B 2
B 99
D 1
D 2
D 3
D 4
D 99
;
run;
proc report data=test nowd;
column var1 var2;
define var1 / order order=data;
define var2 / order order=data;
run;
proc report data=test nowd;
column var1 var2;
define var1 / order order=data;
define var2 / order order=internal;
run;
结果分别为:
4、GROUP
(汇总)指定变量为分组变量,为变量的每个唯一值创建一行。生成summary report。
column中所有字符变量均为分组变量时,默认生成column中其他数值型变量的统计量(默认SUM)。
如果需要显示其他统计量,可以使用define语句对数值型变量进行指定。
define age / mean 'Ave age';
5、ACROSS
(频数)为变量的每个唯一值创建一列,产生列分组。
ACROSS的变量生成频数值(COUNT),其他数值型变量则显示sum统计量。
6、COMPUTED(输出中添加计算变量)
通过计算创建新变量new_var ,new_var 需要在column语句中。
如果计算中使用到了其他变量other_var,那么在column语句中other_var要写在new_var 的前面。
计算块语句—–compute语句。
/*输出中添加计算变量的格式*/
DEFINE new_var_name / COMPUTED; /*计算块中的新变量,必须添加computed选项*/
COMPUTE new_var_name / options;
statements; /*可以是:赋值语句、IF语句、DO循环语句*/
ENDCOMP;
proc report data='miya.temp' nowd;
where dest in ('LON','PAR');
column flight capacity deplaned emptyseats;
define flight / width=6;
define emptyseats / computed 'Empty Seats';
compute emptyseats;
emptyseats=capacity.sum-deplaned.sum;
endcomp;
run;
计算数值变量:
/*
***计算数值变量***
!!!在COMPUTE语句中定义其变量名
!!!如果用到分析(ANALYSIS)角色变量,则必须将其对应的统计量(默认SUM)放在变量名后。
下面语句生成一个数值计算变量Income,其值为Salary和Bonus的总和。
*/
DEFINE Income / COMPUTED;
COMPUTE Income;
Income = Salary.SUM + Bonus.SUM;
ENDCOMP;
计算字符变量:
/*
***计算字符变量***
!!!在COMPUTE语句中添加“CHAR”选项和“LENGTH”选项指定字符变量长度(1~200,默认8)。
下面语句生成一个字符计算变量JobType。
*/
DEFINE JobType / COMPUTED;
COMPUTE JobType / CHAR LENGTH = 10;
IF Title = 'Programmer' THEN JobType = 'Technical';
ELSE JobType = 'Other';
ENDCOMP;
BY语句:
按指定的变量分多个表显示(使用前需要先排序)
在report中添加汇总分割
BREAK语句:指定变量上方(before)或下方(after)插入一条分割线,并显示统计量。
RBREAK语句:指定在表格最下方或最上方插入一条分割线,并显示统计量。
基本格式:
BREAK after variable/options;
RBREAK before /options;
variable:必须是分组(GROUP)变量或者排序(ORDER)变量。
OPTIONS:
PAGE: 开始新的一页
SUMMARIZE:为数值变量插入汇总统计量。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21504.html