前面通過對SAS Base的學習,我想大家對in運算符并不陌生,它廣泛的應用于數據步或SQL條件語句中,進行條件判斷或數據篩選,進而訪問特定觀測值。
但是在SAS中編寫宏語句時,試圖使用in運算符時log會報錯,這是因為在默認情況下,SAS宏解析器沒有開啟對in運算符的支持,而把in僅僅當成常規字符來處理,而不是運算符。那么如何在宏語句中正確使用in運算符呢,今天小編帶你一一梳理,如果你是SAS基礎小白,請不要錯過這篇推文噢
測試數據集
data test;
set sashelp.class;
run;
例1:在data step中使用IN語句
data test1 test2;
set test;
if age in (13 14) then output test1;
else if age in (11 12) then output test2;
run;
test1結果如下
test2結果如下
例2:在proc sql中使用IN語句
proc sql noprint;
create table test3 as
select*
from test
where name in ("Jane" "John");
quit;
結果如下:
例3:在宏語句中使用IN語句
結果如下:
可以看到當我們在宏語句中使用in運算符時在日志中會報錯,如果我們想要解決上述問題,這里提供兩種解決方案供大家參考:
(1)Method1:
可以寫成&group. =1 or &group. =2,但當選擇條件過多時使用or可能會比較繁瑣,因此對于條件過多時不推薦使用,示例如下所示。
(2)Method2:
如果我們想要開啟SAS宏解析器對in運算符的支持,我們可以用option語句在SAS會話中適時開啟,比較方便,推薦使用,示例如下所示。
如果我們只想在當前宏程序模塊下運用此運算符,只需要在宏程序參數中加上MINOPERATOR選項,示例如下所示。
-
SQL
+關注
關注
1文章
750瀏覽量
43900 -
SAS
+關注
關注
2文章
517瀏覽量
32770 -
運算符
+關注
關注
0文章
166瀏覽量
11013
發布評論請先 登錄
相關推薦
評論