读取格式错误的数据

时间:2017-10-10 23:44:38

标签: sas

我试图了解如何在SAS中读取格式错误的数据。吼叫是片段,是我尝试的开始。我也试过做一个if语句但是不确定如何为每一行声明一个格式。例如:

if _N_ then [format for this line goes here];

data prob2;
length name $ 8 ;
infile rawdata(Group2.txt) truncover;
input Code Name X Y Z;
proc print data=prob2;
run;

示例数据:

10 Arnold 123 21 333
20 Barbara 11  387
30  176 265 3876
 Daniel 154  39876
50 Elmo 176 256 33
60 Fifi 198 298
70 Gizmo  288 354
80    376
90 Isaac 100 267 322

预期产出:

Code  Name     X    Y     Z
-----------------------------
10 | Arnold | 123 | 21 | 333
20 | Barbara|  11 | 387|  .
30 |     .  |  176| 265| 3876
 . | Daniel |  154|  39| 876
50 |  Elmo  |  176| 256| 33
60 |  Fifi  |  198| 298|  .
70 |  Gizmo |  288| 354|  .
80 |    .   |  376|  . |  . 
90 |  Isaac |  100| 267| 322
-----------------------------

1 个答案:

答案 0 :(得分:0)

david25272的解决方案正在发挥作用。

option missing=.;

data begin;  
    INFILE DATALINES  DLM=' ' dsd;
    input Code  Name  $ X Y Z;  
    datalines; 
10 Arnold 123 21 333
20 Barbara 11  387
30  176 265 3876
 Daniel 154  39876
50 Elmo 176 256 33
60 Fifi 198 298
70 Gizmo  288 354
80    376
90 Isaac 100 267 322
;
run;

制作

Code    Name    X   Y   Z
10  Arnold  123 21  333
20  Barbara 11  387 .
30      176 265 3876
.   Daniel  154 .   39876
50  Elmo    176 256 33
60  Fifi    198 298 .
70  Gizmo   288 354 .
80      376 .   .
90  Isaac   100 267 322

然而,这是空间敏感的,如果可能的话,我建议在您的数据中添加分隔符。使用简单的更换功能非常简单。

编辑:找到一篇关于输入数据的精彩论文: http://www2.sas.com/proceedings/sugi29/253-29.pdf