Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sas 如何读取线人数据:1亿至1亿美元_Sas_Informat - Fatal编程技术网

Sas 如何读取线人数据:1亿至1亿美元

Sas 如何读取线人数据:1亿至1亿美元,sas,informat,Sas,Informat,数据集包括一系列数字: $1,000.1M $100.5M $1,002.3M $23.4M $120.3M 我想在SAS中将变量作为数字读取 结果应该是: Money(millions) 1000.1 100.5 1002.3 23.4 120.3 我使用COMMAw.d读取此数据,但无法运行 代码是: input Money(millions) COMMA9.1; run; 如何修改它

数据集包括一系列数字:

    $1,000.1M
      $100.5M
    $1,002.3M
     $23.4M
     $120.3M
我想在SAS中将变量作为数字读取

结果应该是:

   Money(millions)
   1000.1
   100.5
   1002.3
   23.4
   120.3
我使用COMMAw.d读取此数据,但无法运行

代码是:

    input Money(millions) COMMA9.1;
    run;
如何修改它

非常感谢!

信息不需要像“M”这样的字母,它只删除逗号、空格、美元符号、百分号、破折号和右括号。 只需删除所有不需要的字符,即可将原始字符串转换为包含数字的字符串:

data input;
    length moneyRaw $200;    
    infile datalines;
    input moneyRaw $;

    datalines;
$1,000.1M
$100.5M
$1,002.3M
$23.4M
$120.3M
;
run;

data result;
    set input;
   * "k" modifier inverts the removed characters;
    money = input(compress(moneyRaw,"0123456789.","k"),best.);
run;
或者,如果您了解regex,您可以为将来阅读它的任何人添加一些有趣的代码:

data resultPrx;
    set input;
    moneyUpdated = prxChange("s/^\$(\d+(,\d+)*(\.\d+)?)M$/$1/",1,strip(moneyRaw));
    money = input(compress(moneyUpdated,','),best.);
run;

我认为你最好把它当作一个角色来读,然后按照德米特里的回答来处理。但是如果它是一个单列,那么如果你将分隔符设置为M,你就可以读取它。我怀疑这在演示中会起作用,但在你的整个过程中不会起作用

data input;
    informat moneyRaw dollar8.;    
    infile datalines dlm='M';
    input moneyRaw ;
    *moneyRaw = moneyRaw * (1000000);
    format moneyRaw dollar32.;
    datalines;
$1,000.1M
$100.5M
$1,002.3M
$23.4M
$120.3M
;
run;

所有的数字都是百万吗?或者有可能有一个B或者有一个不是百万的数字吗?是的,都是百万。我以前不知道压缩函数,这是我第一次学习SAS。谢谢你的帮助!非常感谢。那么,是否没有办法将这些数据作为数字直接读取?