美文网首页BG-SAS
SAS编程:Quote函数的应用

SAS编程:Quote函数的应用

作者: 野藤_ | 来源:发表于2021-06-14 23:39 被阅读0次

    最近Reveiw他人代码的过程中,遇到了Quote函数的应用,我眼前一亮。这个函数我从未使用过,它的延伸应用确实可以提高编程的效率。

    Quote函数的的功能非常简单,向字符值添加双引号(Adds double quotation marks to a character value)。可以参考示例代码进行理解:

    data class;
      set sashelp.class;
      name2 = quote(strip(name));
    run;
    

    结果如下:


    Output 1

    查看输出结果,大家都应该觉得这个函数如此简单,究竟能有什么妙用呢?我们可以使用Quote函数来构建IN判断语句的条件范围。具体来讲,就是对每一个具体的条件选项使用Quote函数,并将其保存在宏变量中,便于后续IN判断语句的调用。参考示例代码进行理解:

    proc sql noprint;
      select quote(strip(name)) into : name_F separated by ", "
      from sashelp.class
      where sex="F";
    quit;
    
    %put &name_F;
    
    data class2;
      set sashelp.class;
      if name in (&name_F.) then sex2 = "Female";
    run;
    

    宏变量的输出结果如下:


    Output 2

    输出数据集Class2如下:


    Output 3

    按照特定的条件选出name值内容,并加上引号保存到宏变量中,方便后续程序得应用。在这个举例中,有人会觉得我直接在应用if sex = "F" then sex2 = "Female"不更方便快捷吗?没错,在上面的例子中确实这样做更方便,因为示例数据集中本身就含有实现目标条件的变量。但如果目标条件在其它一个或多个数据集中,这样把目标条件范围先整合到宏变量中,最后进行进一步引用就便利简洁很多了。

    以上。

    若有疑问,欢迎评论区交流!

    相关文章

      网友评论

        本文标题:SAS编程:Quote函数的应用

        本文链接:https://www.haomeiwen.com/subject/ufraeltx.html