PROC REPORT过程

PROC REPORT过程基本的语法格式:PROCREPORT<DATA=data-set><options>;RUN;

大家好,欢迎来到IT知识分享网。

目录

基本的语法格式

options

COLUMN语句:

where语句

DEFINE语句:

6种变量显示方式

BY语句:

在report中添加汇总分割


基本的语法格式

PROC REPORT <DATA=data-set> <options>; 
RUN;

proc report data=miya.fbg;
run;

 PROC REPORT过程

options

常用选项 作用 默认值
HEADLINE 在表头下方显示一条分割线,使表头与下方数据分隔开
BOX 生成的表格包含所有的横竖框线。 无,没有任何框线
HEADSKIP 在所有列标题下面或横线(HEADSKIP)下面写一个空行
SPLIT= 指定标签的分隔符 /
MISSING 保留缺失值(此处待验证!!!) 不显示缺失值

COLUMN语句

选择报表中出现的变量,并对其排序:否则默认使用数据集中所有变量。
如果使用的变量都是数值型变量,则默认做求和计算。否则输出全部观测。

proc report data=miya.fbg;
    column height weight fbg;
run;

 PROC REPORT过程

使用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)icon-default.png?t=M3K6https://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;

结果分别为:

PROC REPORT过程 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

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信