sas宏程序编写教程 sas宏参数的两种类型?
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一键设置缩起代码,这一世齐整整,一键恢复治好强迫症患者。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。