SAS学习笔记(三)第5、6、7章

三、 使用输出交付系统(ods)增强输出

1. 追踪和选择过程步输出结果

ods trace语句:
ods trace on; #打开追踪
你要追踪的proc步;
run;
ods trace off; #关闭追踪
ods select语句:
你要选择的proc步;
ods select output-object-list; #output-object-list可以是输出对象的名字、标签、路径,如果是多个输出对象,用空格分开。
run;
例:Big Zac ,red,80,5,Delicious,red,80,3
Dinner Plate,red,90,2,Goliath,red,85,1.5
Mega Tom ,red,80,2,Mortgage Lifter,red,85,2
Big Rainbow ,yellow,90,1.5,Pineapple,yellow,85,2
要求:变量为name,color,days,weight。按color分组,输出第二个color的结果。
5.2
结果(在日志里):
5.2
可以看到第二个输出对象的路径是means.bygroup2.summary。于是:
5.2
结果:
5.2

2. 从过程步输出中创建sas数据集

通过ods,将输出结果发送到output输出目标,几乎可以将过程步生成的任何输出保存到sas数据集。首先需要使用ods trace语句获得需要的输出对象名,然后使用ods output语句将输出对象发送到输出目标。
ods output语句:
ods output output-object = new-data-set;
#其中output-object可以是想要保存的输出对象的名字、标签、路径 。new-data-set是要创建的sas数据集名字。
例:Big Zac ,red,80,5,Delicious,red,80,3
Dinner Plate,red,90,2,Goliath,red,85,1.5
Mega Tom ,red,80,2,Mortgage Lifter,red,85,2
Big Rainbow ,yellow,90,1.5,Pineapple,yellow,85,2
要求:变量为name,color,days,weight。追踪proc tabulate。
5.3
tabulate过程生成了一个名为Table的输出对象:
5.3
用ods output创建新的数据集tabout并打印出来:
5.3
5.3
但是这个表格的格式我有点没看懂。

3. 创建文本、HTML、RTF、PDF输出

几个主要的输出目标:
5.4

3.1 创建文本输出

两种方式:
(1)在sas中打开工具—选项—参数选择,单击结果选项卡,勾选“创建列表”。sas会将输出结果发送至listing,直到手动关闭。
(2)ods语句。
ods listing; #这句要放在第一行
若要指定放在某文件里,则在后面加上file=‘文件路径’
例:beluga,whale,15,dwarf,shark,0.5,basking,shark,30,humback,whale,50
whale,shark,40,blue,whale,100,killer,whale,30,mako,shark,12
要求:变量为name,family,length。proc means。创建文本输出。
5.4
在输出中输出的结果:
5.4
在结果查看器中输出的结果:
5.4
若要删除过程步标题,如本例的means procedure,则加入ods noproctitle:
5.4
结果:
5.4

*我在指定文件中输出后,文件存在了,但打不开:
5.4
5.4

3.2 创建HTML输出

ods语句:
ods html body=‘body-filename.html’ options;
file=与body=具有相同的作用。生成的正文文件包括结果内容。其他常用的选项包括:
5.5
如:ods html file=‘afgiwgf.html’ barrettsblue;指定了HTML输出目标,将结果不存在这个文件中,并采用barrettsblue样式。
关闭HTML输出目标,将下面语句放在需要捕获的输出过程步之后,并紧跟在run后面。
ods html close;
例:beluga,whale,15,dwarf,shark,0.5,basking,shark,30,humback,whale,50
whale,shark,40,blue,whale,100,killer,whale,30,mako,shark,12
要求:变量为name,family,length。proc means。创建HTML输出,样式为d3d,要输出结果、目录和框架。
5.5
在sas的结果查看器中:

同时在指定的文件中生成了对应的结果文件、目录文件和框架文件:

默认浏览器打开:

3.3 创建RTF(Rich Text Format)输出

创建一个人RTF文件后,可复制到word中,像操作word表格一样。ods语句与html输出类似,不同的是,rtf只有一个输出文件,该文件包含所有结果内容,常用的选项如下:

例:beluga,whale,15,dwarf,shark,0.5,basking,shark,30,humback,whale,50
whale,shark,40,blue,whale,100,killer,whale,30,mako,shark,12
要求:变量为name,family,length。proc means。创建RTF输出,bodytitle,startpage为no。

ods rtf file='E:\SAS\sss\sas数据\第5章\5.6shark.rtf' 
bodytitle startpage=no;
ods noproctitle;
data shark;
infile 'E:\SAS\sss\sas数据\第5章\5.4鲨鱼\5.4鲨鱼.csv\' dlm=',';
input name $ family $ length @@;
run;
proc means maxdec=0;
class family;
var length;
run;
ods rtf close;

在敲代码时我发现三点:

  1. 上节中的5.5shark.html等三个文件是我在电脑的文件夹中新建的空文件,这节中的5.6shark.rtf不是电脑里的空文件,而是sas自己建的,说明文件不需要事先建,sas在运行代码输出结果时自己建。
  2. sort和by的组合,与class语句作用差不多,但结果不一样,如下。
  3. 最后的输出结果没有在sas的结果查看器中显示,而是直接生成了rtf文件并打开。

先排序再用by的输出结果:

class分组的结果:
好美观哦

3.3 创建PDF输出

PDF输出目标会创建一个PDF输出。类似于rtf输出,只产生一个文件,可用的选项包括:

例:beluga,whale,15,dwarf,shark,0.5,basking,shark,30,humback,whale,50
whale,shark,40,blue,whale,100,killer,whale,30,mako,shark,12
要求:变量为name,family,length。proc means。创建PDF输出,样式为sansprinter。

结果(也是sas新建的pdf并直接打开):

4. 自定义标题和脚注

在ods输出中,样式模板指定标题和脚注的显示,但也可以在title语句和footnote语句中,插入一些简单选项改变标题和脚注的显示。
title语句和footnote语句的一般形式为:

option之间没有逗号,用空格分开。常用选项:
just= #设定对齐方式
fontground= #设定文本的字体颜色

color= 选项用于设定文本的颜色,颜色的名字如果超过8个字符或含有嵌套空格,需要用引号引起来;以#开头的RGB十六进制代码也要用引号引起来。
bcolor= 选项用于指定文本的背景颜色,其可设定的颜色范围与color=选项的一样。
height= 用于指定文本的高度,其值为一个数值,单位可以是PT、IN或CM。
justify= 用于指定文本的对齐方式,有left、center、right三种选择。
font= 可指定文本的字体。
bold=与italic&#

  • 4
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值