BG-SAS

SAS编程:Quote函数的应用

2021-06-14  本文已影响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"不更方便快捷吗?没错,在上面的例子中确实这样做更方便,因为示例数据集中本身就含有实现目标条件的变量。但如果目标条件在其它一个或多个数据集中,这样把目标条件范围先整合到宏变量中,最后进行进一步引用就便利简洁很多了。

以上。

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

上一篇下一篇

猜你喜欢

热点阅读