我试图了解如何在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
-----------------------------
答案 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