這個(gè)語句內(nèi)容的介紹账千,可以在以下書籍中查詢:
1肝箱、SAS? 9.4 Functions and CALL Routines Reference
2坤检、SAS? 9.4 Macro Language Reference
先直接介紹文檔里的三個(gè)例子的應(yīng)用:
Example 1: Executing a Macro Conditionally
這里可以先看Data步的操作叹谁,輸出DATEDUE在30天之前的記錄饲梭,并計(jì)數(shù)加1。Data操作之后焰檩,Late數(shù)據(jù)集中只包含30天之前的數(shù)據(jù)以及計(jì)數(shù)憔涉。當(dāng)數(shù)據(jù)處理到末尾(if final)以及計(jì)數(shù)n不為0(if n)時(shí), 執(zhí)行這個(gè)宏程序%overdue.
Example 2: Passing DATA Step Values into a Parameter List
數(shù)據(jù)集Dates中存儲(chǔ)了三個(gè)日期;數(shù)據(jù)集Reptdata中存儲(chǔ)了日期變量析苫、var1兜叨、var2穿扳;宏程序rept的作用是輸出特定日期下的某變量橫向條形圖的頻數(shù)統(tǒng)計(jì)。
數(shù)據(jù)集Dates中有三條記錄国旷,所以最后Call Execute語句會(huì)執(zhí)行三次矛物,變量值date會(huì)依次傳送到宏程序%rept中,宏程序另外兩個(gè)參數(shù)是固定值议街,三次運(yùn)行值都相同泽谨。語句中的“,”也可以寫在后面兩個(gè)參數(shù)一塊,效果相同特漩。
Example 3: How to Create a Macro Using CALL EXECUTE
這里的需要注意的是吧雹,在data步運(yùn)行時(shí)%nrstr會(huì)消除“%”的解析的作用,也就是在Data運(yùn)行提交后再執(zhí)行宏定義語句涂身。
也可以去掉%nrstr雄卷,不影響結(jié)果。只不過在data步運(yùn)行中蛤售,就已經(jīng)運(yùn)行宏定義了丁鹉。可以參考下兩個(gè)程序的日志情況進(jìn)行理解悴能。