0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SAS运算符in在宏语句中的应用

冬至子 来源:小高的SAS学习笔记 作者:小高笔记 2023-05-19 14:38 次阅读

前面通过对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
    SQL
    +关注

    关注

    1

    文章

    750

    浏览量

    43894
  • SAS
    SAS
    +关注

    关注

    2

    文章

    517

    浏览量

    32769
  • 运算符
    +关注

    关注

    0

    文章

    166

    浏览量

    11012
收藏 人收藏

    评论

    相关推荐

    C语言运算符的使用方法

    详细介绍了C语言表达式、算术运算符、赋值运算符、关系运算符、条件结构、逻辑运算符、位运算符的语法和使用方法,并讨论了
    发表于 11-02 11:30 919次阅读
    C语言<b class='flag-5'>运算符</b>的使用方法

    Java基础之Java运算符

    = 5.0f; long l = 5;f==l; 结果为true,浮点数与整数进行比较,只要值相等就返回true。关系运算符主要用于条件语句和循环语句中的判断条件。而条件结构就是根据不同的条件去执行
    发表于 05-18 15:39

    C语言程序设计--运算符与表达式

    c语言对数据有很强的表达能力,具有十分丰富的运算符,利用这些运算符可以组成各种表达式及语句运算符就是完成某种特定运算的符号表达式则是由
    发表于 07-14 21:30 46次下载

    C语言32个关键字九种控制语句34种运算符

    C语言32个关键字九种控制语句34种运算符 C语言32个关键字九种控制语句34种运算符
    发表于 05-06 11:47 6次下载

    32个关键字9个控制语句34个运算符概述

    32个关键字9个控制语句34个运算符
    发表于 05-15 09:32 15次下载

    条件运算符是什么_条件运算符有哪些

    运算符优先级高于赋值、逗号运算符,低于其他运算符。关系运算实际上是逻辑比较运算,它是逻辑运算
    发表于 11-16 16:02 1.1w次阅读
    条件<b class='flag-5'>运算符</b>是什么_条件<b class='flag-5'>运算符</b>有哪些

    单目运算符是什么_单目运算符有哪些

    单目运算符是指运算所需变量为一个的运算符,又叫一元运算符,其中有逻辑非运算符:!、按位取反运算符
    的头像 发表于 02-24 15:42 6w次阅读
    单目<b class='flag-5'>运算符</b>是什么_单目<b class='flag-5'>运算符</b>有哪些

    浅析MySQL中的各类运算符

    MySQL支持多种运算符,我们写SQL脚本时经常会需要用到各种各样的运算符,这些运算符可以用来连接表达式,进而从数据库中查询我们需要的结果集等。这些类型主要包括算术
    的头像 发表于 05-03 17:41 1966次阅读
    浅析MySQL中的各类<b class='flag-5'>运算符</b>

    python运算符是什么

    python运算符 0. 什么是运算符? 本章节主要说明Python的运算符。举个简单的例子 4 +5 = 9 。 例子中,4和5被称为操作数,“+”号为运算符。 Python语言支持
    的头像 发表于 02-21 16:44 2191次阅读

    Verilog逻辑设计中的循环语句运算符

    “ 本文主要分享了Verilog设计过程中一些经验与知识点,主要包括循环语句(forever、repeat、while和for)、运算符。”
    的头像 发表于 03-15 11:41 4813次阅读

    C语言总结_语句运算符

    当前文章复盘C语言的: 位运算运算符、基本运算符、数据类型、变量、for语句、while语句、goto
    的头像 发表于 08-14 09:39 897次阅读

    什么是运算符重载

    重载运算符是具有特殊名称的函数,是通过关键字** operator **后跟运算符的符号来定义的
    的头像 发表于 01-20 15:30 2300次阅读

    条件(三元)运算符

    RTL建模中广泛使用的运算符是条件运算符,也称为三元运算符,该运算符用于两个表达式之间进行选择——表5-2列出了用于表示条件
    的头像 发表于 02-09 15:42 1226次阅读
    条件(三元)<b class='flag-5'>运算符</b>

    什么是移位运算符

    移位运算符将向量的位向右或向左移位指定的次数。SystemVerilog具有按位和算术移位运算符
    的头像 发表于 02-09 15:49 1670次阅读
    什么是移位<b class='flag-5'>运算符</b>

    C语言的运算符

    C语言中,我们常常会用到表达式,使用表达式的过程中便会使用到运算符。C语言中,不同的运算符拥有不同的优先级和结合性。执行
    的头像 发表于 02-21 15:12 1042次阅读
    C语言的<b class='flag-5'>运算符</b>