R2 | #30天专注橙长计划#~SAS~Day 25

R2 | #30天专注橙长计划#~SAS~Day 25_第1张图片

5.3 从过程输出中创建SAS数据集


R2 | #30天专注橙长计划#~SAS~Day 25_第2张图片

有时需要把一个过程的结果弄到SAS数据集中,有的过程用output或out=实现。但用ODS,可以储存从过程输出的任何一部分。首先要使用ODS TRACE语句决定选择输出对象名。然后使用ODS OUTPUT语句将输出对象发送到OUTPUT目的地中。

ODS OUTPUT语句 基本形式为:

ODS OUTPUT output-object=new-data-set;

这个语句不属于数据步和过程步。ODS OUTPUT打开SAS数据集并等待正确的过程输出,数据集保持开放,直到过程步的结尾。因为ODS OUTPUT是立即执行的,它将应用于proc正在处理的数据,或者应用于下一个proc(如果目前没有proc)。为确保得到正确的输出,建议将ODS OUTPUT语句放在PROC语句之后,下一个PROC 、DATA或RUN语句之前。

例子 仍然是关于番茄的数据:

R2 | #30天专注橙长计划#~SAS~Day 25_第3张图片

下面是引用与SAS日志,显示由proc tabulate产生的追踪(trace),tabulate产生一个叫做table的输出:

R2 | #30天专注橙长计划#~SAS~Day 25_第4张图片

下面的代码读取数据、使用ODS OUTPUT语句来创建叫做TABOUT(来自TABLE输出对象)的SAS数据集,然后用proc print打印出新数据集。

R2 | #30天专注橙长计划#~SAS~Day 25_第5张图片

有两部分输出结果,第一部分是标准tabular结果,有proc tabulate产生。下面是TABOUT数据集,由ODS OUTPUT语句产生,并有proc print打印。

R2 | #30天专注橙长计划#~SAS~Day 25_第6张图片

5.4 使用ODS语句创建HTML输出

将输出发送到HTML目的地,将得到HTML格式的 文件。这个文件也可以被读入spreadsheets,甚至被打印或导入到文字处理软件中(有些格式会发生变化)。总之,产生一个HTML文件只需两步语句——打开HTML文件、关闭。

ODS语句 将输出发送到HTML目的地,使用ODS HTML语句,基本形式为:

ODS HTML BODY='body-filename.html' options;

Option是用来改变HTML的类型(contents,page,or frame),

 Contents= contents文件是一个链接到主体文件的一个目录表,它将会列出输出的每个部分,点击表中某个条目,相关输出会出现。

 Page= page文件类似于contents文件,不同的是,contents通过标签列出输出的每个部分,而page文件通过页码列出。

 Frame= frame允许同时访问在不同区域、框架或浏览器窗口中,访问主体文件、contents文件和page文件。

 Style= 这个选项允许指定一个风格模板,默认的模板名为default。

下面的语句告诉SAS发送一个输出给HTML目的地,储存一个名为AnnualReport.html的主体文件,并使用D3D风格。

ODS HTML BODY='AnnualReport.html' STYLE=D3D;

ODS 语句不属于数据步也不属于过程步,摆放它的好位置是proc过程步之前,这个过程步的输出正是你希望捕捉的。

关闭HTML文件的ODS语句为:

ODS HTML CLOSE;

将这个语句放在proc之后,接在 run语句之后。

例子 下面的数据是关于选择的鲸鱼或鲨鱼的平均长度(英尺)

下面的代码创建了两个输出,一个是来自means过程,一个来自print过程。并且有两个ODS语句,一个创建了四个HTML文件:body,contents,page,and frame,一个是关闭HTML文件。

R2 | #30天专注橙长计划#~SAS~Day 25_第7张图片

输出结果如下:

R2 | #30天专注橙长计划#~SAS~Day 25_第8张图片

你可能感兴趣的:(R2 | #30天专注橙长计划#~SAS~Day 25)