【问题标题】:Replacing consecutive embedded blanks with another character in SAS用SAS中的另一个字符替换连续的嵌入空格
【发布时间】:2015-12-07 04:55:25
【问题描述】:

我正在尝试用一个新字符替换我的一个变量 (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

我也尝试了不使用strip 函数的tranwrd,但我从234 345 改为23400000Translate 做同样的事情。

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

【问题讨论】:

    标签: replace sas


    【解决方案1】:

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

    【讨论】:

    • 这很有意义。谢谢你的解释!我很感激。
    猜你喜欢
    • 1970-01-01
    • 2020-03-16
    • 2011-05-13
    • 2015-03-27
    • 2013-03-31
    • 2016-03-08
    • 2011-04-21
    • 2021-12-04
    • 1970-01-01
    相关资源
    最近更新 更多