2016 - 2024

感恩一路有你

sas宏程序编写教程 sas宏参数的两种类型?

浏览量:1922 时间:2023-07-02 21:36:10 作者:采采

sas宏参数的两种类型?

SAS宏参数包含两种类型的宏变量:

自动启动宏变量,由SAS系统提供给;

用户定义的宏变量,由用户在程序中定义。

自动启动宏变量

在SAS进程结束时,或程序运行过程中由系统自动创建角色,在SAS再次前一直都一直保持比较有效,是全局宏变量,能在SAS任何地方被语句。

定义宏变量

有两种定义宏变量:%LET和callsymput。定义宏变量并分配个值给宏变量的最简单方法是使用宏程序语句%LET。格式万分感谢:

%LET变量名变量值;

两个语句是callsymput,其格式::

call!symput(变量名,变量值);

sas 小技巧?

1)让SAS也能用中文变量名

设置成的SAS命名规则是没能使用中文等特殊字符充当SAS名,不过我们这个可以按照validvarnameany系统选项,强行突破此限制,不仅如此,我们甚至还这个可以按照validmemnameextend系统选项进阶数据集名称的限制。

optionsvalidmemnameextendvalidvarnameany

↑突破命名原则限制

技虽这般,但当然不推荐推荐,在确实无可奈何的情况下,.例如别给了你一个几百个中文变量名的CSV文件,是可以考虑到救救急。

(2)选择性的遗忘再打开SAS数据集电脑提示格式问题

有时会出现别人给的SAS数据集,用libname设置好逻辑库后,却仍然无法显示,总是提示解析错误,此时后用nofmterr选项遗漏掉此类错误。

optionsnofmterr

(3)一键备份清理过SAS的所有结果

当SAS结果窗口结果过多,期望尽快需要清理弄干净,从一个干净清爽的基础重新开始时,dm命令就可以不派上用场了。

↑Results树形目录下最后很多

dmodsresults#34clear#34continue

真接运行上面的代码,送给你一个比较清爽的世界,效果不胜感激。

↑Results树形目录下结果一键设置清理过

(4)SAS绘图设计器帮你写cad作图代码

关於SAS绘图,我曾写过系列教程,目录如下:

但是真正不愿意去用SAS写代码绘图的人相对多。不过,我们可以不试一下%sgdesign,用可拖拽的办法绘图,因此是可以存放背后的SASGTL代码为日后所用。

%sgdesign

↑sgdesigner

↑图及GTL代码

(5)逃出「黑洞」错误

还有没有见到过那样一种情况:运行程序任何SAS代码,SAS都没有任何结果,也没有错误反馈处理,仅仅在log里反复重复不显示你的代码。

这就是有所谓的「黑洞」错误,你进入到了这样一个「黑洞」,任何不运行的SAS代码都被他吸入,木有任何反馈!

神马?你才刚遇到了过,很显然磨炼算够啊。运行下面一段宏代码,再试一下后面其他SAS过程步。

%macrotest

%bringThis isa#34BalkHole#34test

%bring****%str(Gu#39sWechat)****

%mend

%test

/*以下代码无论咋运行是没反应啊*/

procprint

run

怎末破?运行下面代码,是可以突然冒出来!

#39)

%mend

反正,这个示例我还是比较好很简单,细细的看仔细观察宏定义,发现问题可能就本质单引号不看操作导致。求完整的匹配是这样的:

%throwing****%str(Gu#39sWechat)****%mend#39)%mend

可是,假如在紧张一点儿的宏,我们可能就没那你太容易几眼可以找到问题所在的位置了,尚幸的是,我们是可以用一段可用代码,多次运行程序,等他再次出现,就是可以逃走黑洞!这那是:

*#39*#34*)*/%mendkick

(6)SASEG/SASStudio写代码

初学者,很可能我总是记不住函数,记不住选项。没多大关系,让SAS自动给我们电脑提示吧。此时,也可以试下在SASEG或是SASStudio里写代码。

↑SASstudio

(7)一键备份格式话别人凌乱不堪的代码

遇到了别人写的无法直视的SAS代码,你以为要白白忍受吗?别了,在SAS EG里借助于ctrli一键设置缩起代码,这一世齐整整,一键恢复治好强迫症患者。

SAS 代码 变量 选项 数据

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。