使用SAS提取数值

时间:2012-02-29 16:16:04

标签: sas

我的原始数据格式为

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

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

有人可以帮我解决如何在sas中处理这些数据。

提前谢谢你。 RGDS。

3 个答案:

答案 0 :(得分:6)

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

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

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

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

甚至更好:

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

答案 1 :(得分:3)

就像上面提到的@itzy一样,Perl正则表达式可以轻松完成:

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

这将删除所有非数字字符。   在此语句中,'s /'开始一个字符串,[^ 0-9]表示所有非数字字符。 -1定义了一个前端匹配。

答案 2 :(得分:0)

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