前面通過對SAS Base的學(xué)習(xí),我想大家對in運(yùn)算符并不陌生,它廣泛的應(yīng)用于數(shù)據(jù)步或SQL條件語句中,進(jìn)行條件判斷或數(shù)據(jù)篩選,進(jìn)而訪問特定觀測值。
但是在SAS中編寫宏語句時,試圖使用in運(yùn)算符時log會報錯,這是因?yàn)樵谀J(rèn)情況下,SAS宏解析器沒有開啟對in運(yùn)算符的支持,而把in僅僅當(dāng)成常規(guī)字符來處理,而不是運(yùn)算符。那么如何在宏語句中正確使用in運(yùn)算符呢,今天小編帶你一一梳理,如果你是SAS基礎(chǔ)小白,請不要錯過這篇推文噢
測試數(shù)據(jù)集
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結(jié)果如下
test2結(jié)果如下
例2:在proc sql中使用IN語句
proc sql noprint;
create table test3 as
select*
from test
where name in ("Jane" "John");
quit;
結(jié)果如下:
例3:在宏語句中使用IN語句
結(jié)果如下:
可以看到當(dāng)我們在宏語句中使用in運(yùn)算符時在日志中會報錯,如果我們想要解決上述問題,這里提供兩種解決方案供大家參考:
(1)Method1:
可以寫成&group. =1 or &group. =2,但當(dāng)選擇條件過多時使用or可能會比較繁瑣,因此對于條件過多時不推薦使用,示例如下所示。
(2)Method2:
如果我們想要開啟SAS宏解析器對in運(yùn)算符的支持,我們可以用option語句在SAS會話中適時開啟,比較方便,推薦使用,示例如下所示。
如果我們只想在當(dāng)前宏程序模塊下運(yùn)用此運(yùn)算符,只需要在宏程序參數(shù)中加上MINOPERATOR選項(xiàng),示例如下所示。
-
SQL
+關(guān)注
關(guān)注
1文章
783瀏覽量
45145 -
SAS
+關(guān)注
關(guān)注
2文章
524瀏覽量
33427 -
運(yùn)算符
+關(guān)注
關(guān)注
0文章
173瀏覽量
11484
發(fā)布評論請先 登錄
C語言運(yùn)算符的使用方法

Java基礎(chǔ)之Java運(yùn)算符
C語言程序設(shè)計(jì)--運(yùn)算符與表達(dá)式
C語言32個關(guān)鍵字九種控制語句34種運(yùn)算符
條件運(yùn)算符是什么_條件運(yùn)算符有哪些

單目運(yùn)算符是什么_單目運(yùn)算符有哪些

淺析MySQL中的各類運(yùn)算符

python運(yùn)算符是什么
Verilog邏輯設(shè)計(jì)中的循環(huán)語句和運(yùn)算符
C語言總結(jié)_語句、運(yùn)算符
什么是運(yùn)算符重載
條件(三元)運(yùn)算符

C語言的運(yùn)算符

評論