Call Execute语句的介绍

这个语句内容的介绍,可以在以下书籍中查询:
1、SAS® 9.4 Functions and CALL Routines Reference
2、SAS® 9.4 Macro Language Reference

先直接介绍文档里的三个例子的应用:
Example 1: Executing a Macro Conditionally

有条件地执行宏程序

这里可以先看Data步的操作,输出DATEDUE在30天之前的记录,并计数加1。Data操作之后,Late数据集中只包含30天之前的数据以及计数。当数据处理到末尾(if final)以及计数n不为0(if n)时, 执行这个宏程序%overdue.

Example 2: Passing DATA Step Values into a Parameter List

将变量值传送到参数列表中

数据集Dates中存储了三个日期;数据集Reptdata中存储了日期变量、var1、var2;宏程序rept的作用是输出特定日期下的某变量横向条形图的频数统计。

数据集Dates中有三条记录,所以最后Call Execute语句会执行三次,变量值date会依次传送到宏程序%rept中,宏程序另外两个参数是固定值,三次运行值都相同。语句中的“,”也可以写在后面两个参数一块,效果相同。


逗号位置变化

Example 3: How to Create a Macro Using CALL EXECUTE

使用CALL EXECUTE创建宏程序

这里的需要注意的是,在data步运行时%nrstr会消除“%”的解析的作用,也就是在Data运行提交后再执行宏定义语句。
也可以去掉%nrstr,不影响结果。只不过在data步运行中,就已经运行宏定义了。可以参考下两个程序的日志情况进行理解。
日志结果

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容