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;