收藏

SAS编程-为纵向字符添加引号并转为横向

2022-09-25  本文已影响0人  野藤_

欢迎关注,SAS茶谈!

在工作中,会遇到将一列文本添加引号,放入条件语句中,例如,EXCEL保存的PARAMCD值。

if paramcd in ("A" "B" "C" "D" "E" "F" "G" "H");

最直接的处理,就是一个值一个值的复制粘贴,简单但是繁琐。后来,我利用EXCEL进行处理,类似SAS编程:使用EXCEL批量处理构建Format过程步语句。不过,这个处理过程需要另开EXCEL软件,也需要3步骤(复制粘贴,公式处理,复制粘贴转置)。最近,在使用EXCEL进行处理后,我思考能否还能更便捷一点。

想到了另一个办法,通过Data步处理纵向文字信息,转为横向加引号的信息。而Data步的程序可以保存在缩写中,直接通过关键词调用(参考:SAS编程-缩写以及键盘宏的应用 )。这样整个转化流程就大大缩短。

Data步示例程序如下:

data tmp1;
  length text0 $100 ;
  input text0 @@;
  datalines;
    Alfred
    Alice
    Barbara
    Carol
    Henry
    James
  ;
run;

data tmp2;
  set tmp1 end=eof;

  length text $2000;
  retain text " ";
  text = strip(text)||" "||quote(strip(text0));

  keep text;
  if eof then output;
run;

程序输出结果如下:

然后,将这一段程序保存到缩写(Abbreviation)中:

复制完纵向字符信息后,直接输入关键词quote_调出程序,复制粘贴纵向字符运行,直接从数据集中复制信息,这样就快速的完成了整个流程。

总结

本文介绍了利用SAS程序以及缩写调用,快速将纵向字符信息转换为带引号的横向信息,相比于手动复制粘贴以及EXCEL公式处理要快捷方便得多。

感谢阅读, 欢迎关注:SAS茶谈!
若有疑问,欢迎评论交流!

上一篇 下一篇

猜你喜欢

热点阅读