SAS 系统设置自动调用文件夹内的宏程序

使用Autocall Macro

上面两种方法其实可以归结为同一种方法,只不过实现的路径不同。但都存在一个缺点:如果程序文件中包含很多宏程序的定义,而往往有时候只需要调用其中的一个宏,那么其他宏程序的编译其实就是多余的。

Autocall Macro就可以解决这个问题,通过使用这种方式,会在调用宏的时候,SAS自动搜索相对应宏程序的代码,然后对其进行编译(在同个SAS会话中,只在第一次调用时编译,第二次调用会跳过编译过程),进而运行该宏。所以称之为Autocall。

此种方式又可以根据存储方式的不同分为两种,下面分别进行介绍。

3.1. 将目录作为Autocall库

要实现此种方式,需要以下三个步骤:

  1. 将所有的宏程序分别存储到一个SAS程序文件中,并且以宏程序的名字命名该程序文件。然后将所有的宏程序文件放到一个特定的目录下;

  2. 使用FILENAM语句将存储所有宏程序文件的目录关联一个FILEREF;

  3. 使用MAUTOSOURCE系统选项打开Autocall机制(默认打开),并且通过SASAUTO=系统选项将该FILEREF指定为Autocall库;

在完成上面三个步骤后就可以直接调用其中的宏使用,在调用的时候SAS会自动搜索该宏对应的宏程序文件(这也是为什么要求程序文件名必须跟宏的名字一致的原因);然后进行编译,存储到WORK.SASMACR中。

1

将宏程序分别存储到不同程序文件中

2

使用FILENAME语句

filenamemymacros "D:sasmacrosautocall_macros_directory";

3

使用系统选项

options mautosource sasautos=(sasautos mymacros);

接下来,就可以直接调用宏程序使用了。例如:

小贴士

需要注意SASAUTOS=系统选项,因为SAS在启动时会初始化自带的一些Autocall库,所以SASAUTOS会有默认的值。如果直接覆盖SASAUTOS的值,那么SAS系统自带的宏将会不可用。因此在赋值的时候,要加上默认的SASAUTOS值。



全部评论

相关推荐

07-20 21:57
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
机械打工仔:不管啥专业,找工作改简历的第一课先把你那排版改了,简历上不要写个人简历四个字,找你要简历的谁不知道这个是简历?而且还占那么多空间,直接把自己名字和基础信息写上面,整体字体大一些。 还有这种经典两页简历一页大空白,导出PDF的时候多了一页几乎全是白的你自己看着不难受吗随手的事为啥不能改掉呢,这是态度问题,你试想一下你是HR你打开简历看到格式都没调整过会是什么感受?你自己都不重视你的简历,HR更不会在意。 然后内容你那个做两年咖啡就别往里写了,简历在精不在多,你在往你的简历里打字的时候就要想好这东西对你要找的工作有没有帮助。自我评价写一行就行了,不如给专业技能单开一栏。核心课程均分90这个真别写了,把你上过的有用的专业课列出来也行。有很多地方废话很多的精炼一下,比如你校内项目第一个写的那些,全然没有重点。 好好修改一下,我看你内容也挺优秀的,别被一个随便做的简历耽误了,我一个同专业的打工人看了都揪心更别说一天看几百份简历的HR
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务