使用SAS提取数值



我的原始数据采用格式

Var
12 A+
14 A+
AB+ 19
AB:20
20
25
27 New

我只想提取它的数字部分。

有人能帮我如何在sas中处理这些数据吗。

提前谢谢。Rgds。

您可以使用COMPRESS函数,其形式为

COMPRESS(<source><, chars><, modifiers>)

更新:实现这一点有很多方法。根据他们的评论,RWill和Keith提供了最佳解决方案:

var2=input(compress(var,compress(var,,"d")),best.);

甚至更好:

var2=input(compress(var,,"kd"),best.);

正如上面提到的@itzy,Perl正则表达式将很容易做到:

  var2=prxchange("s/[^0-9]//",-1,var);

这将删除所有非数字字符。在该语句中,"s/"以字符串开头,[^0-9]表示所有非数字字符-1定义了一个直到结束的匹配。

我会使用SAS内置的正则表达式函数。首先,将整行作为字符变量读取,然后使用prxmatch或其他正则表达式函数之一,使用d通配符仅提取数字分量。

最新更新