2016 - 2025

感恩一路有你

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

浏览量:4952 时间:2023-01-31 17:14:38 作者:采采

如何调用另一个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的帮助下,一键缩进代码,从此强迫症患者一键治愈的干干净净。

SAS 代码 选项 格式

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