用SAS中的其他字符替换连续的嵌入空格

时间:2015-02-14 04:42:33

标签: replace sas

我正在尝试用一个新字符替换我的一个变量(QPR)中的嵌入空格。这是我的(缩写)代码:

data sas2;
   input QPR $ & 1-9;
   QPR=tranwrd(strip(QPR)," ","0");
run;

proc print data=sas2;
run;

tranwrd函数似乎适用于带有一个嵌入空白的观察;但是,当连续两个空格时,它不起作用。

例如,234 2345变为23402345,但234 345变为234(即其余部分被切断,我认为是因为strip)。相反,我想要23400345

我还尝试了没有tranwrd功能的strip,但我转而从234 345转到23400000Translate做同样的事情。

关于为什么这不起作用以及如何解决它的任何想法?或者,是否有更简单/更好的方法在data步骤中执行此操作?

1 个答案:

答案 0 :(得分:1)

“&”输入语句中的符号会导致SAS在两个空格后停止读取数据。在SAS停止读取数据后,它会用空格填充字符串的其余部分,总长度为9个字符。这就是为什么当你没有使用strip时,你在字符串末尾有一堆零。删除“&”应该解决它。