SAS编程之ods和option的常用语句
上周因为一个ods的语句不会写,所以特地查了obs语句的使用,觉得obs还是挺好用的。
介绍一个sas的输出分为三种窗口。
1、 日志窗口。
2、 输出结果窗口
3、 图形窗口。
我的sas没办法画图,这个窗口我就不贴图了。
Ods语句就是关于输出结果窗口的。接下来我就几个常用的ods语句介绍一下用法,主要是实现结果窗口转化成数据集或者其他格式。一下是ods参数的介绍:
Listing 字符文本在output窗口显示,图形在graph1窗口显示
Result 输出结果在结果窗口显示(没有写ods的时候这个功能是默认存在的。)
Output把output窗口的显示内容(输出对象)转换成sas数据集。(这个功能最常用。)
Html把output窗口的显示内容(输出对象)转换成Html数据集。
Csvall把output窗口的显示内容(输出对象)转换成含有逗号的标识语言文件。
Rtf把output窗口的显示内容(输出对象)转换成rtf数据集。
Pdf把output窗口的显示内容(输出对象)转换成pdf数据集。
Output窗口就是结果输出窗口。
1 结果输出窗口的内容输出到sas数据集。
这个功能对于我来说简直就是再生父母啊,因为建模的时候经常要写一个宏循环,宏循坏要通过过程的参数判断。
procunivariatedata=sashelp.class ;
varage;
run;
这个过程是比较常用的。比如你要知道一个序列的t检验结果,那你发现如果输入以上的代码的时候其实t检验的结果是在结果输出窗口的,你想拿出来用,怎么拿。这时候,你可以把代码写成下面这样子的。大部分proc过程步在data后面都可以接out语句,但是有时候我就觉得我就不知道这个out语句out的是不是我要的东西。
procunivariatedata=sashelp.classouttable=aa;
varage;
run;
如果使用ods可以像以下这么操作。
1、 ods trace on语句.
这个语句的功能就是判断结果输出窗口中的各个小框里面的在转化成数据集的时候叫什么名字。输入以下代码:
odstraceon;
procunivariatedata=sashelp.classouttable=aa;
varage;
run;
在日志窗口会显示这样子:
正常情况下默认的是odstraceoff;即这个功能是关闭,在日志里面是看不到这些。看上图,假设你要的是位置检验:
就是这个图的内容,那么找到标签是位置检验,记下他的名称或者路径都可以,写一下代码:
odstraceon;
odsoutputTestsForLocation=dd;
procunivariatedata=sashelp.classouttable=aa;
varage;
run;
or
odstraceon;
odsoutputUnivariate.Age.TestsForLocation=dd;
procunivariatedata=sashelp.classouttable=aa;
varage;
run;
都可以把位置检验的这个图输出到sas数据集。所有的过程步都可以这么干的。
以上就是我常用的关于ods比较常用的两个功能。其他的关于ods的可以参考姚志勇的《sas编程与数据挖掘商业案例》的第137页。
2 将结果输出窗口中的内容输出到特定的文件中。
输入以上这个代码。在路径下面就会产生一个html的文件。解析一 下这个程序。
odslistingclose;这里listing其实可有可无,如果头尾不加listing,只是在结果输出窗口哪里也会有结果而已。所以上面这个代码主要来介绍一下html,因为输出的是html文件,所以首先要指定路径“odshtmlfile="C:\Users\Administrator.53HMKHKEAFZ58WJ\Desktop\data\test.html";”,跑完程序之后要关掉这个功能,不然你后面有结果的还是会输出到html窗口。介绍了了一个html的功能之后,其实后面的pdf csvall rtf都是同样的套路。看下输出的结果(有点丑):
2、第二部分就是介绍option.option介绍的是放在过程步前面的。
obs:表示需要处理的最后一行observation,如果指定其为max,就表示处理到最后一条observation。这个用法经常在数据比较多,前期调试代码的时候使用的, 只是调试代码,但是不用全量跑,就可以用这个设置“options obs=1000”,等到调试完完了之后要改回来“options obs=max”,不然还是跑1000条。
firstobs:表示需要从第几行observation开始处理,默认是从第一条开始。
msglevel:默认值是N,仅打印日志中的notes,warnings和error信息,如果设为I,再打印附属信息,包括索引的使用,合并处理,排序等附加信息
errors:指定最多有多少错误可以在log中显示,例如“options error=50”;
macrogen:将宏扩展的结果显示在日志里面
compress:是否采用压缩格式存储数据集
missing:指定用于替换missing value的字符,不设置的时候是“.”,如果这个字符的话貌似是没有用的,只能针对字符,譬如“options missing=5”那么在数据集显示的null的数就是用5补充,但是5只是显示,实质上的是观测还是.。就是你如果要把null变成-0,那么还是if age=. Then age=-0;
replace/noreplace:如果dataset已经存在,指定是否覆盖
print/noprint:指定是否在output窗口输出,这个在跑循环的时候很好用,因为一旦是1000各变量都跑一循环,输出在结果输出窗口就会很多,这时候整个sas就会很卡,包括日志也是,当你的日志产生是很多的话,建议输出到外面用proc printto。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在职场中,许多言辞并非表面意思那么简单,有时需要听懂背后的“潜台词”。尤其在数据分析的领域里,掌握常用术语就像掌握一门新 ...
2025-01-04在当今信息化社会,数据分析已成为各行各业的核心驱动力。它不仅仅是对数字进行整理与计算,而是在数据的海洋中探寻规律,从而指 ...
2025-01-03又到一年年终时,各位打工人也迎来了展示成果的关键时刻 —— 年终述职。一份出色的年终述职报告,不仅能全面呈现你的工作价值, ...
2025-01-03在竞争激烈的商业世界中,竞品分析对于企业的发展至关重要。今天,我们就来详细聊聊数据分析师写竞品分析的那些事儿。 一、明确 ...
2025-01-03在数据分析的江湖里,有两个阵营总是争论不休。一派信奉“大即是美”,认为数据越多越好;另一派坚守“小而精”,力挺质量胜于规 ...
2025-01-02数据分析是一个复杂且多维度的过程,从数据收集到分析结果应用,每一步都是对信息的提炼与升华。可视化分析结果,以图表的形式展 ...
2025-01-02在当今的数字化时代,数据分析师扮演着一个至关重要的角色。他们如同现代企业的“解密专家”,通过解析数据为企业提供决策支持。 ...
2025-01-02数据分析报告至关重要 一份高质量的数据分析报告不仅能够揭示数据背后的真相,还能为企业决策者提供有价值的洞察和建议。 年薪 ...
2024-12-31数据分析,听起来好像是技术大咖的专属技能,但其实是一项人人都能学会的职场硬核能力!今天,我们来聊聊数据分析的核心流程,拆 ...
2024-12-31提到数据分析,你脑海里可能会浮现出一群“数字控”抱着电脑,在海量数据里疯狂敲代码的画面。但事实是,数据分析并没有你想象的 ...
2024-12-31关于数据分析师是否会成为失业高危职业,近年来的讨论层出不穷。在这个快速变化的时代,技术进步让人既兴奋又不安。今天,我们从 ...
2024-12-30数据分析师在现代企业中扮演着关键角色,他们的工作内容不仅丰富多样,还对企业的决策和发展起着重要的作用。正如一个经验丰富的 ...
2024-12-29数据分析师的能力要求 在当今的数据主导时代,数据分析师的角色变得尤为重要。他们不仅需要具备深厚的技术背景,还需要拥有业务 ...
2024-12-29随着技术的飞速发展与行业的持续变革,不少人心中都存有疑问:到了 2025 年,数据分析师还有前途吗?给你分享一篇阿里P8大佬最近 ...
2024-12-29如何构建数据分析整体框架? 要让数据分析发挥其最大效能,建立一个清晰、完善的整体框架至关重要。今天,就让我们一同深入探讨 ...
2024-12-27AI来了,数分人也可以很省力,今天给大家介绍7个AI+数据分析工具,建议收藏。 01酷表 EXCEL 网址:https://chatexcel.com/ 这是 ...
2024-12-26一个好的数据分析模型不仅能使分析具备条理性和逻辑性,而且还更具备结构化和体系化,并保证分析结果的有效性和准确性。好的数据 ...
2024-12-26当下,AI 的发展堪称狂飙猛进。从 ChatGPT 横空出世到各种大语言模型(LLM)接连上线,似乎每个人的朋友圈都在讨论 AI 会不会“ ...
2024-12-26数据分析师这个职业已经成为了职场中的“香饽饽”,无论是互联网公司还是传统行业,都离不开数据支持。想成为一名优秀的数据分析 ...
2024-12-26在数据驱动决策成为商业常态的今天,数据分析师这一职业正迎来前所未有的机遇与挑战。很多希望转行或初入职场的人士不禁询问:数 ...
2024-12-25