使用SAS提取数值

Bet*_*eta 2 sas

我的原始数据在表格中

Var
12 A+
14 A+
AB+ 19
AB:20
20
25
27 New
Run Code Online (Sandbox Code Playgroud)

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

任何人都可以帮我解决如何在sas中处理这些数据.

先感谢您.RGDS.

Dav*_*avB 6

你可以使用COMPRESS函数,它接受表单

COMPRESS(<source><, chars><, modifiers>)
Run Code Online (Sandbox Code Playgroud)

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

var2=input(compress(var,compress(var,,"d")),best.);
Run Code Online (Sandbox Code Playgroud)

甚至更好:

var2=input(compress(var,,"kd"),best.);
Run Code Online (Sandbox Code Playgroud)

  • 一种变化是在另一个压缩函数中使用嵌入式压缩函数,其中嵌入式压缩函数移除所有差异,并且这用作第二压缩函数的修饰符(移除除这些数字之外的所有字符).类似于:var2 = compress(var ,, compress(var ,,"d")); (2认同)
  • 更容易的是添加"k"修饰符,它可以保持列出的字符而不是删除它们.所以代码看起来像:var2 = input(compress(var ,,"kd"),best.); (2认同)