SAS用户定义的信息用于读取电话号码

时间:2014-11-08 21:07:07

标签: sas user-defined

您好我在阅读数据时遇到问题

我有一个csv,我试图读入sas,电话号码是(###)### - ####的形式,我想创建一个读取#的信息仅

2 个答案:

答案 0 :(得分:1)

创建此类信息的唯一方法是为每个可能匹配的电话号码指定单个字符串和信息值,这显然不是一种实用的方法。

但是,您可以轻松创建一个仅包含原始导入文本中的数字的新变量,例如

data _null_;
    phone_raw = '(123)456-7890';
    length phone_digits $10;
    phone_digits = compress(phone_raw,,'dk');
    put phone_raw= / phone_digits=;
run;

答案 1 :(得分:1)

您可以创建一个删除字符的信息,只读取数字:

proc format;
  invalue comph (default=20)
  's/\D//' (regexpe) = _same_;
run;
data _null_;
  a=input("(423)456-7890",comph.);
  put a=;
run;

该示例将正确输出数字。没有进行声明的验证。奇怪的字符串'/ \ D //'是一个正则表达式,应该读作:将所有非数字(\ D)替换为空。