




免费预览已结束,剩余4页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PROC REPORT基础一、PROC REPORT格式:PROC REPORT data= SAS-data-set options ;COLUMNS variable_1 . variable_n;DEFINE variable_1;DEFINE variable_2;. . .DEFINE variable_n;COMPUTE blocksBREAK ;RBREAK ;RUN;COLUMNS:指定输出到报表的列DEFINE:上述列的格式等COMPUTE:计算模块BREAK / RBREAK:生成合计,或报表其它类型的格式。PROC REPORT的选项Options有很多,下面介绍几个常用的:DATA= 指定做报表的数据集PROMPT= PROMPT模式NOWINDOWS= 不输出到结果REPORT = 指定一个存储的报表来生成新报表OUTREPT= 指定新路径来存放报表OUT= 建立新数据集HEADLINE 在报表变量标题和内容间生成一个水平分隔线HEADSKIP 在报表变量标题和内容间生成一行空格2 先生成一个基本的报表先生成数据:datamnthly_sales; length zip $5cty $8var $10; input zip $ cty $ var $ sales; label zip=Zip Code cty=County var=Variety sales=Monthly Sales; datalines;52423 Scott Merlot 186.52423 Scott Chardonnay 156.6152423 Scott Zinfandel 35.552423 Scott Merlot 55.3 52388 Scott Merlot 122.8952388 Scott Chardonnay 78.2252388 Scott Zinfandel 15.452200 Adams Merlot 385.5152200 Adams Chardonnay 24652200 Adams Zinfandel 151.152200 Adams Chardonnay 76.2452199 Adams Merlot 233.0352199 Adams Chardonnay 185.2252199 Adams Zinfandel 95.84;run;Proc Report生成最基本的报表:procreportdata=mnthly_sales headline headskip ; title1 Simple Report; column cty zip var sales; define cty / display width=6County/Name; define zip / display; define var / display; define sales / display format=6.2width=10;run;这里的define后面的/,其后面有很多选项来对变量格式,输出方式等进行设置,其选项如下:GROUP:分组显示DISPLAY:一般显示ANALYSIS:其值用于计算或统计ORDER:按其值排序显示ACROSS:交叉显示COMPUTED:其值在compute块里计算得到结果:3 使用order,按指定变量名排序显示procreportdata=mnthly_sales headline headskip ; title1 Simple Report; column cty zip var sales; define cty / order width=6County/Name; define zip / display; define var / display; define sales / display format=6.2width=10;run;结果:4 group分组显示procreportdata=mnthly_sales nofs headline headskip ; title1 Simple Report; column cty zip var sales; define cty / group width=6County/Name; define zip / group; define var / group order=freq descending; define sales / display format=6.2width=10;run;结果:5 analysis,统计量求和procreportdata=mnthly_sales nofs headline headskip ; title1 Simple Report; column cty zip sales; define cty / group width=6County/Name; define zip / group; define sales / analysis sum format=6.2width=10;run;结果:6 求多个统计量procreportdata=mnthly_sales nofs headline headskip ; title1 Simple Report; column cty zip sales sales=mean_sales; define cty / group width=6County/Name; define zip / group; define sales / analysis sum format=6.2width=10sum; define mean_sales / analysis mean format=6.2width=10Mean of/Sales;run;结果:7 如果你想让某变量的每一个值都作为一列,那就要用到across。这里要注意的是,有across选项的var,在column时后面加了一个,,从而将其后面的变量的数据直接放到across变量下。procreportdata=mnthly_sales nofs headline headskip; title1 Cross Tab Report (Across Type); column cty zip var,sales; define cty / group width=6County/Name; define zip / group; define var / across order=freq descending - Grape Variety -; define sales / analysis sum format=6.2width=10Revenue;run;结果:这里,变量variety的每一个值都成为了新的列8 BREAK与RBREAK,对分组后的报表汇总procreportdata=mnthly_sales nofs headline headskip; title1 Report with Breaks; column cty zip var,sales; define cty / group width=6County/Name; define zip / group; define var / across order=freq descending - Grape Variety -; define sales / analysis sum format=6.2width=10Revenue; break after cty / ol skip summarize suppress; rbreak after / dol skip summarize;run;结果:这里说明一下BREAK与RBREAK后面的选项:OL 汇总上方加一条线DOL汇总上方加两条线UL汇总下方加一条线DUL 汇总下方加两条线summarize 对每组进行汇总skip 加入一空白行suppress 在汇总行不显示组名9 compute块,计算统计变量,这个以后将专门介绍procreportdata=mnthly_sales nofs headline headskip; title1 Report with Row Sums (Computed Type); column cty zip var,sales row_sum; define cty / group width=6County/Name; define zip / group; define var / across order=freq descending - Grape Variety -; define sales / analysis sum format=6.2width=10Revenue; define row_sum / computed format=comma10.2 Total; break after cty / ol skip summarize suppress; rbreak after / dol skip summarize; compute row_sum; row_sum = sum(_C3_,_C4_,_C5_,_C6_,_C7_,_C8_); endcompute;run;结果:Compute块是以compute开始,endcompute为结尾,可以计算出很多复杂的数据。这里的_C*_表示第几列的变量,例如_C3_表示第三列,_C#_代表最后一行。这里的_C7_和_C8_是多余的,但不影响结果。10 proc report与ODS,以后会详细介绍。这里用ODS输出report过程结果,方法很简单,就是将上面的report代码放入ods语句之间。ods listing close;ods rtf file = c:sugi30.rtf; 上面的proc report过程代码放在这里就行ods rtf close;即:ods listing close;ods rtf file = c:sugi30.rtf;procreportdata=mnthly_sales nofs headline headskip; title1 Report with Row Sums (Computed Type); column cty zip var,sales row_sum; define cty / group width=6County/Name; define zip / group; define var / across order=freq descending - Grape Variety -; define sales / analysis sum format=6.2width=10Revenue; define row_sum / computed format=comma10.2 Total; break after cty / ol skip summarize suppress; rbreak after / dol skip summarize; compute row_sum; row_sum = sum(_C3_,_C4_,_C5_,_C6_,_C7_,_C8_); endcompute;run;ods rtf close;结果:11 report设置style,让报表更炫一点。这个以后也会详细介绍ods listing close;ods rtf file = c:sugi30.rtf;procreportdata=mnthly_sales nofs headline headskip style(header)=background=lightskyblue foreground=black style(column)=background=lightcyan foreground=black; title1 Report with Row Sums (Computed Type); column cty zip var,sales row_sum; define cty / group width=6County/Name; define zip / group; define var / across order=freq descending - Grape Variety -; define s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论