我想从字符串中删除多个空格。
%let CDate = 25Mar2015;
data _null_;
call symput('TitleDate',cat(put("&CDate."d,monname9.),', ',year("&CDate."d)));
run;
%put &TitleDate; /* March, 2015 */
%put Title is &TitleDate; /* multiple blanks between 'is' and 'March' */
我尝试compress
:%put Title is %sysfunc(compress(&TitleDate));
但它返回Title is March
而没有年份。
答案 0 :(得分:2)
非常接近,有两处修改:
WORDDATE20。格式而不是cat / put组合
call symputx('TitleDate',put("&CDate."d,worddate20.));
编辑(回答评论中的问题): compress函数有3个参数,第一个是强制的,后两个是选项。
压缩功能不起作用,因为SAS看到的是:
压缩(2015年3月25日) 这是对compress函数的无效调用。我认为压缩函数会假设第二个参数是2015年,我不知道它对25的作用。我实际上会期望它产生错误,但它并没有。如果你确实想要使用compress函数传入一个字符值,你需要使用%quote函数引用它,但是这会消除所有空格,我想你只是想摆脱领先空间。
%put Title is %sysfunc(compress(%quote(&TitleDate.)));