我正在尝试用一个新字符替换我的一个变量(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
转到23400000
。 Translate
做同样的事情。
关于为什么这不起作用以及如何解决它的任何想法?或者,是否有更简单/更好的方法在data
步骤中执行此操作?
答案 0 :(得分:1)
“&”输入语句中的符号会导致SAS在两个空格后停止读取数据。在SAS停止读取数据后,它会用空格填充字符串的其余部分,总长度为9个字符。这就是为什么当你没有使用strip时,你在字符串末尾有一堆零。删除“&”应该解决它。