|
1:改变log输出到指定外部文件
log一般输出在log窗口,使用printto过程可以改变其默认输出位置
- proc printto log = "d:\log.txt" new; *将log输出到指定的文件中,new表示每次覆盖上一次,更多信息到时候查看帮助文档;
- proc print data=sashelp.class;
- proc printto; run; *恢复默认log输出;
复制代码
2:改变output输出到指定外部文件
- proc printto print='e:\log.txt';run;
- proc freq data=sashelp.class;
- table sex;
- run;
- proc printto;run;
- /*不知为何输出不到外部文件,以后再检查*/
复制代码
什么是ODS?
Output Delivery System
Ods有什么用?
determines where the output should go and what it should look like when it gets there.
理解Ods的基础是什么?
destinations:different types of ODS output
Template: is a set of instructions telling ODS how to format your data.
destinations:如果不指定输出目的地,那么默认为listing
下面是所有的输出目的地
- LISTING standard SAS output
- HTML Hypertext Markup Language
- RTF Rich Text Format
- PRINTER high-resolution printer output2
- PS PostScript
- PCL Printer Control Language
- PDF Portable Document Format
- OUTPUT SAS output data set
- MARKUP markup languages including
- XML DOCUMENT output document
复制代码
Template = table template + style template
但是template的语法比较复杂,用已经设置好的内置类型就可以了
- PROC TEMPLATE;
- LIST STYLES;
- RUN;
复制代码
理解output object(简写为oo)
当sas从procedure中获取数据后,他会将data和table template组合成output object,对于一般过程来说只有一个output object,但对于含有by语句的程序来说,可以有很多,每个by组都可以有一个用ods trace statement来跟踪 用ods select来选择
语法如下
- ODS TRACE ON;
- the PROC steps you want to trace go here
- RUN;
- ODS TRACE OFF;
复制代码- 日志对应的信息,证明确实有两个output object
- ods trace off;
- ods trace on;
- proc means data=sashelp.class n mean maxdec=2;
- by sex;
- *ods select Means.ByGroup1.Summary; /*这两句是我后面加进来的,运行程序是并不存在,表明选择需要输出的oo或需要排除的oo*/
- *ods exclude Means.ByGroup1.Summary;
- run;
- Output Added:
- -------------
- 名称: Summary
- 标签: 汇总统计量
- 模板: base.summary
- 路径: Means.ByGroup1.Summary
- -------------
- NOTE: 上述消息针对以下 BY 组:
- 性别=男
- Output Added:
- -------------
- 名称: Summary
- 标签: 汇总统计量
- 模板: base.summary
- 路径: Means.ByGroup2.Summary
- -------------
- NOTE: 上述消息针对以下 BY 组:
- 性别=女
复制代码
ods output statement
这条语句能输出任意对象到数据集,我现在不能经常用到,所以暂时不管。
ods html file='' style= ;
ods html close;
这两条语句对应出现,规定以html文件输出,以及输出的地方和style
3:利用ods改变输出路径
- filename outp 'C:\Users\Administrator\Desktop\myTestForToday\test.html';
- ods listing close; *改变默认输出路径listing;
- ods html file=outp; *打开指定;
- proc univariate data=sashelp.class;
- var weight;
- run;
- ods html close;
- ods listing;
复制代码
4:ods results on/off对应结果查看集
程序比较大时,尽量关闭results管道,不然会占用很多资源。
5:输出需要的对象ods trace on/label;
- *列出过程中所有可以输出的模块;
- ods trace on/label;
- proc univariate data=sashelp.class;
- class sex;
- var age;
- run;
- /*proc freq data=sashelp.class;*/
- /* table sex;*/
- /*run;*/
- ods trace off;
- *其中一个模块的示例;
- Output Added:
- -------------
- 名称: ExtremeObs select后面的模块名
- 标签: 极值观测
- 模板: base.univariate.ExtObs
- 路径: Univariate.Age.男.ExtremeObs 路径可以确定要输出的模块
- 标签路径: 'Univariate PROCEDURE'.'Age'.'Sex = 男'.'极值观测' 添加标签后才有。
复制代码
|
|