`
心动音符
  • 浏览: 337006 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

PROC REPORT基础

阅读更多
1 PROC REPORT语法

PROC REPORT  data= SAS-data-set  options ;

   COLUMNS variable_1 …. variable_n;

   DEFINE variable_1;

   DEFINE variable_2;

  . . .

DEFINE variable_n;

COMPUTE  blocks

  BREAK … ;

  RBREAK … ;

RUN;

COLUMNS:指定输出到报表的列

DEFINE:上述列的格式等

COMPUTE:计算模块

BREAK / RBREAK:生成合计,或报表其它类型的格式。



PROC REPORT的选项Options有很多,下面介绍几个常用的:

DATA= 指定做报表的数据集

PROMPT= PROMPT模式

NOWINDOWS= 不输出到结果

REPORT = 指定一个存储的报表来生成新报表

OUTREPT= 指定新路径来存放报表

OUT=  建立新数据集

HEADLINE 在报表变量标题和内容间生成一个水平分隔线

HEADSKIP 在报表变量标题和内容间生成一行空格



2 先生成一个基本的报表

先生成数据:

data mnthly_sales;                 

   length zip $ 5 cty $ 8 var $ 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.61      

52423 Scott Zinfandel 35.5         

52423 Scott Merlot 55.3             

52388 Scott Merlot 122.89          

52388 Scott Chardonnay 78.22       

52388 Scott Zinfandel 15.4         

52200 Adams Merlot 385.51          

52200 Adams Chardonnay 246         

52200 Adams Zinfandel 151.1        

52200 Adams Chardonnay 76.24      

52199 Adams Merlot 233.03         

52199 Adams Chardonnay 185.22     

52199 Adams Zinfandel 95.84       

;             

run;



Proc Report生成最基本的报表:

proc report data=mnthly_sales 

    headline headskip ;  

   title1 "Simple Report";

   column cty zip var sales;           

   define cty / display  width=6 'County/Name';

   define zip / display;              

   define var / display;              

   define sales / display format=6.2 width=10;

run;   

这里的define后面的’/’,其后面有很多选项来对变量格式,输出方式等进行设置,其选项如下:

GROUP:分组显示

DISPLAY:一般显示

ANALYSIS:其值用于计算或统计

ORDER:按其值排序显示

ACROSS:交叉显示

COMPUTED:其值在compute块里计算得到



结果:




3 使用order,按指定变量名排序显示

proc report data=mnthly_sales

    headline headskip ;  

   title1 "Simple Report";            

   column cty zip var sales;          

   define cty / order  width=6 'County/Name';              

   define zip / display;              

   define var / display;               

   define sales / display format=6.2 width=10;            

run;   

结果:




4 group分组显示

proc report data=mnthly_sales  nofs

    headline headskip ;  

   title1 "Simple Report";            

   column cty zip var sales;          

   define cty / group   width=6 'County/Name';              

   define zip /  group;               

   define var /  group order=freq descending;

   define sales / display format=6.2 width=10;            

run;   

        

结果:





5 analysis,统计量求和

proc report data=mnthly_sales  nofs

    headline headskip ;  

   title1 "Simple Report";            

   column cty zip   sales;          

   define cty / group   width=6 'County/Name';              

   define zip /  group;                             

   define sales / analysis sum  format=6.2 width=10;            

run;

结果:




6 求多个统计量

proc report data=mnthly_sales  nofs

    headline headskip ;  

   title1 "Simple Report";            

   column cty zip sales sales=mean_sales;          

   define cty / group   width=6 'County/Name';              

   define zip /  group;                             

   define sales / analysis sum  format=6.2 width=10 'sum';

    define mean_sales / analysis mean   format=6.2 width=10 'Mean of/Sales';

run;   

结果:



7 如果你想让某变量的每一个值都作为一列,那就要用到across。这里要注意的是,有across选项的var,在column时后面加了一个’,’,从而将其后面的变量的数据直接放到across变量下。。

proc report data=mnthly_sales nofs headline headskip;

   title1 "Cross Tab Report (Across Type)";

   column cty zip var,sales;

   define cty / group width=6 'County/Name';

   define zip / group;

   define var / across order=freq descending '- Grape Variety -';

   define sales / analysis sum format=6.2 width=10 'Revenue';

run;

结果:




这里,变量variety的每一个值都成为了新的列



8  BREAK与RBREAK,对分组后的报表汇总

proc report data=mnthly_sales nofs headline headskip;

   title1 "Report with Breaks";

   column cty zip var,sales;

   define cty / group width=6 'County/Name';

   define zip / group;

   define var / across order=freq descending '- Grape Variety -';

   define sales / analysis sum format=6.2 width=10 'Revenue';

   break after cty / ol skip summarize suppress;

   rbreak after / dol skip summarize;

run;

结果:




这里说明一下BREAK与RBREAK后面的选项:

OL 汇总上方加一条线

DOL汇总上方加两条线

UL汇总下方加一条线

DUL 汇总下方加两条线

summarize  对每组进行汇总

skip  加入一空白行

suppress  在汇总行不显示组名



9 compute块,计算统计变量,这个以后将专门介绍

proc report data=mnthly_sales nofs headline headskip;

   title1 "Report with Row Sums (Computed Type)";

   column cty zip var,sales row_sum;

   define cty / group width=6 'County/Name';

   define zip / group;

   define var / across order=freq descending '- Grape Variety -';

   define sales / analysis sum format=6.2 width=10 'Revenue';

   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';

proc report data=mnthly_sales nofs headline headskip;

   title1 "Report with Row Sums (Computed Type)";

   column cty zip var,sales row_sum;

   define cty / group width=6 'County/Name';

   define zip / group;

   define var / across order=freq descending '- Grape Variety -';

   define sales / analysis sum format=6.2 width=10 'Revenue';

   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';



proc report data=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=6 'County/Name';

   define zip / group;

   define var / across order=freq descending '- Grape Variety -';

   define sales / analysis sum format=6.2 width=10 'Revenue';

   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;

结果:






  • 大小: 21.9 KB
  • 大小: 17.6 KB
  • 大小: 15.3 KB
  • 大小: 6.9 KB
  • 大小: 8.3 KB
  • 大小: 13.2 KB
  • 大小: 46.8 KB
  • 大小: 23.6 KB
  • 大小: 38.7 KB
  • 大小: 39.6 KB
分享到:
评论

相关推荐

    PROC 基础

    3. 报告生成过程:如PROC PRINT(打印)、PROC REPORT(复杂报告)、PROC TABULATE(表格生成)等,用于展示分析结果。 4. 其他过程:如PROC IMPORT(导入数据)、PROC EXPORT(导出数据)、PROC TEMPLATE(创建...

    Guide to Report Writing Examples

    - 在`PROC REPORT`中使用`SUPPRESS`选项来隐藏不希望展示的列。 - **示例代码**: ```sas proc report data=dataset nowd headline; columns variable1 variable2 variable3; define variable1 / display; ...

    sas参考资料base_proc

    1. **报告编写程序**:这类程序主要用于创建复杂的报告和图形,包括数据摘要、交叉表、频率分布等,如PROC REPORT和PROC PRINT。 2. **统计程序**:涵盖了广泛的统计分析技术,如回归分析、方差分析、生存分析等,...

    大型数据库——Proc编程

    可能涉及的Proc过程可能包括PROC SQL用于数据查询和整合,PROC FREQ用于频率表和交叉表分析,PROC MEANS或PROC UNIVARIATE用于描述性统计,PROC REG或PROC GLM进行回归分析,以及PROC REPORT或ODS Graphics生成报告...

    android bugreport 分析

    通过读取`/proc/binder/failed_transaction_log`和`/proc/binder/transaction_log`文件,记录了Binder框架中的事务信息,Binder是Android系统中进程间通信的基础,这些日志对于调试复杂的IPC问题至关重要。...

    金融软件程序员 必修课PROC

    5. **报告生成**:PROC REPORT 和 PROC PRINT 提供灵活的报表设计,可以生成符合银行内部规范的各类业务报告。 6. **时间序列分析**:PROC TIMESERIES 可以处理时间序列数据,进行趋势分析、季节性调整等,这对于...

    基于SAS软件的高级RTF排版

    在表格布局中,可以使用PROC REPORT过程来实现各种类型表格的输出。布局选项可应用于报告的不同位置,最常用于页眉、列、行或完整的报告。 本文还介绍了使用ODS ESCAPECHAR语句来调用字段函数和其他RTF元素。...

    oracle_ProC编程入门

    - 利用第四代语言应用开发工具如 SQL*Forms、SQL*Reportwriter 等。 - 在第三代语言中嵌入 SQL 语句或调用 Oracle 库函数。 - **Pro*C 的特点**: - 结合了 C 语言的过程控制能力和 SQL 的数据操作能力。 - ...

    (完整版)SAS程序汇总.pdf

    * 纵向连接:使用 PROC REPORT 语句可以对数据进行纵向连接,生成报表。 * 横向合并:使用 PROC REPORT 语句可以对数据进行横向合并,生成报表。 * 两样本均数的比较:使用 PROC TTEST 语句可以对两样本均数进行比较...

    SAS base考试必备练习题.rar

    8. **报表生成**:使用ODS输出系统创建报告,掌握PROC PRINT和PROC REPORT的使用,以及如何自定义样式和布局。 9. **机经**:"机经"通常指的是过往考试的真实题目,通过这些题目,考生可以了解考试的题型、难度和...

    小白学SAS,有配套程序

    对于报告生成,PROC REPORT和ODS(Output Delivery System)是常用工具,它们能将分析结果以清晰、格式化的报告形式呈现。 在学习过程中,初学者应注重理论与实践的结合,理解每个过程背后统计学原理,同时通过配套...

    最详细的中文sas软件教程

    `PROC REPORT`和`PROC PRINT`用于定制化输出。 六、高级应用 1. 时间序列分析:`PROC ARIMA`和`PROC Forecast`处理时间序列数据。 2. 数据挖掘:SAS Enterprise Miner提供图形化的数据挖掘流程。 3. 预测建模:`...

    SAS base programming certificate prep

    - 报告编写过程:包括输出报告的各种过程,例如PROC PRINT,PROC REPORT,PROC TABULATE等。 - 统计过程:用于执行数据分析和统计计算的过程,如PROC MEANS,PROC UNIVARIATE,PROC ANOVA等。 - 实用工具过程:...

    Linux内核模块编程Report1

    这篇报告主要介绍了四个Linux内核模块的编写,它们分别涉及到内核模块的基础操作、参数传递、/proc文件系统以及文件目录的创建。以下是这些模块的详细说明: 1. **模块一**: 这个模块实现了内核模块加载(`insmod`...

    SAS常用程序.pdf

    SAS可以生成各种类型的报告和图表,如PROC PRINT用于数据的表格化输出,PROC GPLOT和PROC SGPLOT用于绘制统计图,PROC REPORT用于创建复杂的报表布局。 8. **数据管理和转换** SAS提供了强大的数据管理功能,如...

    _SAS.9.2.Base.SAS.9.2.Procedures.Guide[1].pdf

    当需要生成复杂的表格和图形报告时,则可以考虑使用PROC REPORT或PROC PRINT。 #### 结论 Base SAS 9.2 过程指南是学习和掌握SAS软件中Base SAS组件的关键资源。它不仅包含了丰富的示例和实践指导,而且还深入浅出...

    The Little SAS book V3

    - **PROC REPORT和PROC TABULATE**:提供了更丰富的数据呈现方式。 - **数据导出**:支持将SAS数据集导出到其他格式文件中。 - **冒号修饰符**:增强informats的功能,提高数据读取的灵活性。 #### 二、基础SAS概念...

    Step-by-Step_Programming_with_Base_SAS

    书中会展示如何使用ODS(Output Delivery System)来定制和控制输出格式,以及如何利用PROC PRINT和PROC REPORT创建专业级别的报告。此外,SAS的图形生成能力也非常强大,包括散点图、直方图、箱线图等多种图表,将...

    sas软件的编程手册

    5. **报告和图形**:PROC GPLOT和PROC SG procedures可以生成高质量的图表,PROC REPORT用于创建详细的报告布局。 6. **数据导入导出**:SAS能与多种数据源交互,如Excel(PROC IMPORT/EXPORT),CSV(PROC ...

Global site tag (gtag.js) - Google Analytics