前面通過對(duì)SAS Base的學(xué)習(xí),我想大家對(duì)in運(yùn)算符并不陌生,它廣泛的應(yīng)用于數(shù)據(jù)步或SQL條件語句中,進(jìn)行條件判斷或數(shù)據(jù)篩選,進(jìn)而訪問特定觀測值。
但是在SAS中編寫宏語句時(shí),試圖使用in運(yùn)算符時(shí)log會(huì)報(bào)錯(cuò),這是因?yàn)樵谀J(rèn)情況下,SAS宏解析器沒有開啟對(duì)in運(yùn)算符的支持,而把in僅僅當(dāng)成常規(guī)字符來處理,而不是運(yùn)算符。那么如何在宏語句中正確使用in運(yùn)算符呢,今天小編帶你一一梳理,如果你是SAS基礎(chǔ)小白,請不要錯(cuò)過這篇推文噢
測試數(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)算符時(shí)在日志中會(huì)報(bào)錯(cuò),如果我們想要解決上述問題,這里提供兩種解決方案供大家參考:
(1)Method1:
可以寫成&group. =1 or &group. =2,但當(dāng)選擇條件過多時(shí)使用or可能會(huì)比較繁瑣,因此對(duì)于條件過多時(shí)不推薦使用,示例如下所示。

(2)Method2:
如果我們想要開啟SAS宏解析器對(duì)in運(yùn)算符的支持,我們可以用option語句在SAS會(huì)話中適時(shí)開啟,比較方便,推薦使用,示例如下所示。

如果我們只想在當(dāng)前宏程序模塊下運(yùn)用此運(yùn)算符,只需要在宏程序參數(shù)中加上MINOPERATOR選項(xiàng),示例如下所示。

-
SQL
+關(guān)注
關(guān)注
1文章
789瀏覽量
46211 -
SAS
+關(guān)注
關(guān)注
2文章
524瀏覽量
33816 -
運(yùn)算符
+關(guān)注
關(guān)注
0文章
173瀏覽量
11898
發(fā)布評(píng)論請先 登錄
C語言運(yùn)算符的使用方法
Java基礎(chǔ)之Java運(yùn)算符
C語言程序設(shè)計(jì)--運(yùn)算符與表達(dá)式
C語言32個(gè)關(guān)鍵字九種控制語句34種運(yùn)算符
32個(gè)關(guān)鍵字9個(gè)控制語句34個(gè)運(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)算符

SAS運(yùn)算符in在宏語句中的應(yīng)用
評(píng)論