Replace 用SAS中的另一个字符替换连续的嵌入空格

Replace 用SAS中的另一个字符替换连续的嵌入空格,replace,sas,Replace,Sas,我试图用一个新字符替换其中一个变量(QPR)中的嵌入空格。以下是我的(缩写)代码: tranwrd函数似乎适用于一个嵌入空白的观察;但是,当一行中有两个空格时,它不起作用 例如,234 2345变为23402345,但234 345变为234(也就是说,其余部分被切断,我假设是因为条带)。相反,我想要23400345 我还尝试了tranwrd而没有strip功能,但我从234 345改为2340000翻译做同样的事情 有没有关于为什么这不起作用以及如何修复它的想法?或者,在数据步骤中是否有更简单

我试图用一个新字符替换其中一个变量(
QPR
)中的嵌入空格。以下是我的(缩写)代码:

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

例如,
234 2345
变为
23402345
,但
234 345
变为
234
(也就是说,其余部分被切断,我假设是因为
条带
)。相反,我想要
23400345

我还尝试了
tranwrd
而没有
strip
功能,但我从
234 345
改为
2340000
<代码>翻译做同样的事情


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

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

这很有意义。谢谢你的解释!我很感激。
data sas2;
   input QPR $ & 1-9;
   QPR=tranwrd(strip(QPR)," ","0");
run;

proc print data=sas2;
run;