0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

冬至子 ? 來源:小高的SAS學(xué)習(xí)筆記 ? 作者:小高筆記 ? 2023-05-19 14:38 ? 次閱讀

前面通過對(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ǔ)小白,請(qǐng)不要錯(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)我們?cè)诤暾Z句中使用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),示例如下所示。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    750

    瀏覽量

    43900
  • SAS
    SAS
    +關(guān)注

    關(guān)注

    2

    文章

    517

    瀏覽量

    32770
  • 運(yùn)算符
    +關(guān)注

    關(guān)注

    0

    文章

    166

    瀏覽量

    11013
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語言運(yùn)算符的使用方法

    詳細(xì)介紹了C語言表達(dá)式、算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符、條件結(jié)構(gòu)、邏輯運(yùn)算符、位運(yùn)算符的語法和使用方法,并討論了
    發(fā)表于 11-02 11:30 ?932次閱讀
    C語言<b class='flag-5'>運(yùn)算符</b>的使用方法

    Java基礎(chǔ)之Java運(yùn)算符

    = 5.0f; long l = 5;f==l; 結(jié)果為true,浮點(diǎn)數(shù)與整數(shù)進(jìn)行比較,只要值相等就返回true。關(guān)系運(yùn)算符主要用于條件語句和循環(huán)語句中的判斷條件。而條件結(jié)構(gòu)就是根據(jù)不同的條件去執(zhí)行
    發(fā)表于 05-18 15:39

    C語言程序設(shè)計(jì)--運(yùn)算符與表達(dá)式

    c語言對(duì)數(shù)據(jù)有很強(qiáng)的表達(dá)能力,具有十分豐富的運(yùn)算符,利用這些運(yùn)算符可以組成各種表達(dá)式及語句運(yùn)算符就是完成某種特定運(yùn)算的符號(hào)表達(dá)式則是由
    發(fā)表于 07-14 21:30 ?46次下載

    C語言32個(gè)關(guān)鍵字九種控制語句34種運(yùn)算符

    C語言32個(gè)關(guān)鍵字九種控制語句34種運(yùn)算符 C語言32個(gè)關(guān)鍵字九種控制語句34種運(yùn)算符
    發(fā)表于 05-06 11:47 ?6次下載

    32個(gè)關(guān)鍵字9個(gè)控制語句34個(gè)運(yùn)算符概述

    32個(gè)關(guān)鍵字9個(gè)控制語句34個(gè)運(yùn)算符
    發(fā)表于 05-15 09:32 ?15次下載

    條件運(yùn)算符是什么_條件運(yùn)算符有哪些

    運(yùn)算符優(yōu)先級(jí)高于賦值、逗號(hào)運(yùn)算符,低于其他運(yùn)算符。關(guān)系運(yùn)算實(shí)際上是邏輯比較運(yùn)算,它是邏輯運(yùn)算
    發(fā)表于 11-16 16:02 ?1.1w次閱讀
    條件<b class='flag-5'>運(yùn)算符</b>是什么_條件<b class='flag-5'>運(yùn)算符</b>有哪些

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

    單目運(yùn)算符是指運(yùn)算所需變量為一個(gè)的運(yùn)算符,又叫一元運(yùn)算符,其中有邏輯非運(yùn)算符:!、按位取反運(yùn)算符
    的頭像 發(fā)表于 02-24 15:42 ?6w次閱讀
    單目<b class='flag-5'>運(yùn)算符</b>是什么_單目<b class='flag-5'>運(yùn)算符</b>有哪些

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

    MySQL支持多種運(yùn)算符,我們寫SQL腳本時(shí)經(jīng)常會(huì)需要用到各種各樣的運(yùn)算符,這些運(yùn)算符可以用來連接表達(dá)式,進(jìn)而從數(shù)據(jù)庫中查詢我們需要的結(jié)果集等。這些類型主要包括算術(shù)
    的頭像 發(fā)表于 05-03 17:41 ?1967次閱讀
    淺析MySQL中的各類<b class='flag-5'>運(yùn)算符</b>

    python運(yùn)算符是什么

    python運(yùn)算符 0. 什么是運(yùn)算符? 本章節(jié)主要說明Python的運(yùn)算符。舉個(gè)簡單的例子 4 +5 = 9 。 例子中,4和5被稱為操作數(shù),“+”號(hào)為運(yùn)算符。 Python語言支持
    的頭像 發(fā)表于 02-21 16:44 ?2195次閱讀

    Verilog邏輯設(shè)計(jì)中的循環(huán)語句運(yùn)算符

    “ 本文主要分享了Verilog設(shè)計(jì)過程中一些經(jīng)驗(yàn)與知識(shí)點(diǎn),主要包括循環(huán)語句(forever、repeat、while和for)、運(yùn)算符?!?/div>
    的頭像 發(fā)表于 03-15 11:41 ?4822次閱讀

    C語言總結(jié)_語句、運(yùn)算符

    當(dāng)前文章復(fù)盤C語言的: 位運(yùn)算運(yùn)算符、基本運(yùn)算符、數(shù)據(jù)類型、變量、for語句、while語句、goto
    的頭像 發(fā)表于 08-14 09:39 ?898次閱讀

    什么是運(yùn)算符重載

    重載運(yùn)算符是具有特殊名稱的函數(shù),是通過關(guān)鍵字** operator **后跟運(yùn)算符的符號(hào)來定義的
    的頭像 發(fā)表于 01-20 15:30 ?2304次閱讀

    條件(三元)運(yùn)算符

    RTL建模中廣泛使用的運(yùn)算符是條件運(yùn)算符,也稱為三元運(yùn)算符,該運(yùn)算符用于兩個(gè)表達(dá)式之間進(jìn)行選擇——表5-2列出了用于表示條件
    的頭像 發(fā)表于 02-09 15:42 ?1228次閱讀
    條件(三元)<b class='flag-5'>運(yùn)算符</b>

    什么是移位運(yùn)算符

    移位運(yùn)算符將向量的位向右或向左移位指定的次數(shù)。SystemVerilog具有按位和算術(shù)移位運(yùn)算符
    的頭像 發(fā)表于 02-09 15:49 ?1674次閱讀
    什么是移位<b class='flag-5'>運(yùn)算符</b>

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

    C語言中,我們常常會(huì)用到表達(dá)式,使用表達(dá)式的過程中便會(huì)使用到運(yùn)算符。C語言中,不同的運(yùn)算符擁有不同的優(yōu)先級(jí)和結(jié)合性。執(zhí)行
    的頭像 發(fā)表于 02-21 15:12 ?1045次閱讀
    C語言的<b class='flag-5'>運(yùn)算符</b>