欢迎关注,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茶谈!
若有疑问,欢迎评论交流!
网友评论