Call Execute語句的介紹

這個語句內(nèi)容的介紹,可以在以下書籍中查詢:
1、SAS? 9.4 Functions and CALL Routines Reference
2、SAS? 9.4 Macro Language Reference

先直接介紹文檔里的三個例子的應(yīng)用:
Example 1: Executing a Macro Conditionally

有條件地執(zhí)行宏程序

這里可以先看Data步的操作,輸出DATEDUE在30天之前的記錄,并計數(shù)加1。Data操作之后,Late數(shù)據(jù)集中只包含30天之前的數(shù)據(jù)以及計數(shù)。當(dāng)數(shù)據(jù)處理到末尾(if final)以及計數(shù)n不為0(if n)時, 執(zhí)行這個宏程序%overdue.

Example 2: Passing DATA Step Values into a Parameter List

將變量值傳送到參數(shù)列表中

數(shù)據(jù)集Dates中存儲了三個日期;數(shù)據(jù)集Reptdata中存儲了日期變量、var1、var2;宏程序rept的作用是輸出特定日期下的某變量橫向條形圖的頻數(shù)統(tǒng)計。

數(shù)據(jù)集Dates中有三條記錄,所以最后Call Execute語句會執(zhí)行三次,變量值date會依次傳送到宏程序%rept中,宏程序另外兩個參數(shù)是固定值,三次運行值都相同。語句中的“,”也可以寫在后面兩個參數(shù)一塊,效果相同。


逗號位置變化

Example 3: How to Create a Macro Using CALL EXECUTE

使用CALL EXECUTE創(chuàng)建宏程序

這里的需要注意的是,在data步運行時%nrstr會消除“%”的解析的作用,也就是在Data運行提交后再執(zhí)行宏定義語句。
也可以去掉%nrstr,不影響結(jié)果。只不過在data步運行中,就已經(jīng)運行宏定義了??梢詤⒖枷聝蓚€程序的日志情況進行理解。
日志結(jié)果

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容