如何调用另一个sas程序中的宏 sas宏参数的两种类型?

sas宏参数的两种类型?SAS宏参数包含两种类型的宏变量:
SAS系统提供的自动宏变量;
用户定义的宏变量由用户在程序中定义。
自动宏变量
它由系统在SAS进程开始时或程序运行期间自动创建,并保持有效,直到SAS退出。它是一个全局宏变量,可以在SAS中的任何地方引用。
定义宏变量
定义宏变量有两种方法:%LET和调用symput。定义宏变量并为其赋值的最简单方法是使用宏语句%LET。格式如下:
%LET变量名=变量值;
另一种说法是call symphony,其格式如下:
调用symput(变量名,变量值);
sas 小技巧?
1)让SAS也用中文变量名。
默认的SAS命名规则是不能使用中文等特殊字符作为SAS名称。但是,我们可以通过使用validvarname=any系统选项来突破这一限制。此外,我们甚至可以通过使用validmemname=extend系统选项来突破数据集名称的限制。
options valid memname = extend valid varname = any
突破命名限制
即便如此,也不推荐。如果你真的没有选择,例如,唐 t给你一个有上百个中文变量名的CSV文件,你可以考虑应急。
(2)忽略打开SAS数据集的格式错误。
有时候会遇到别人给的SAS数据集,用libname设置好逻辑库后,还是可以 打不开,总是提示格式不对。此时,您可以使用nofmterr选项来忽略此类错误。
选项nofmterr
(3)一键清除SAS的所有结果。
当SAS结果窗口中有太多结果时,您希望尽快清理它,并从一个干净清爽的基础上重新开始,dm命令可以派上用场。
结果树目录中有许多结果。
dmods结果# 34清除# 34继续
直接运行上面的代码,给你一个耳目一新的世界。效果如下。
写结果树目录结果一键清理。
(4)SAS绘图设计器帮你写绘图代码。
我写过一系列关于SAS绘图的教程,内容如下:
但是很少有人真的愿意用SAS写代码,画画。其实我们可以试试%sgdesign,用拖拽的,把SAS GTL代码保存在后面备用。
% sgdesign
↑sg设计师
↑图和GTL码
(5)从 "黑洞 "错误
你有没有遇到过SAS运行任何SAS代码都没有结果,没有错误的情况?嘿,在日志里重复你的代码。
这就是所谓的 "黑洞 "错误。你输入这样一个 "黑洞 ",而且任何运行的SAS代码都被他吸进去了,没有任何反馈!
什么?你还没有 我还没有遇到它。看来你的经验还不够。运行以下宏代码,然后尝试其他SAS过程步骤。
%macrotest
%put这是一个# 34球洞# 34测试
%put**** %str(顾#39s)****
%修改
%测试
/*下面的代码只是不 无论它如何运行都没有响应*/
过程打印数据=
奔跑
怎么破?运行下面的代码就可以跳出来了!
#39)
%修改
其实这个例子比较简单。仔细观察宏定义,发现问题可能是单引号不匹配造成的。完整的匹配是这样的:
%put**** %str(Gu#39s)**** %mend #39) %mend
但是,如果我们处在一个更复杂的宏观中,我们可能就没那么容易一眼发现问题了。幸运的是,我们可以使用一个通用代码,并运行多次,直到出现,然后我们就可以逃离黑洞了!这是:
* # 39 * # 34 *)*/ %修补运行
(6)SAS EG/SAS Studio写代码。
初学者可能总是忘记功能和选项。没关系,让SAS自动给我们提示。这时候可以尝试用SAS EG或者SAS Studio写代码。
↑SAS工作室
(7)格式化其他人 的一键搞定。
你必须忍受别人写的你能忍受的SAS代码吗?;不要直视?永别了,在SAS EG里,在ctrl i的帮助下,一键缩进代码,从此强迫症患者一键治愈的干干净净。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。