如何阅读多行文本作为对SAS的同样的观察?

时间:2016-11-02 16:38:43

标签: sas

I have a dataset stored as text. It looks like this:

data in text

I want to read this dateset into SAS like:

dataset I want it to be in SAS

This is my code now:
proc import datafile="myfile" out=mydata DBMS=dlm;
delimiter='09'x;
getnames=no;
run;

但结果看起来就像存储在文本中的那样。如何修改代码?谢谢。

1 个答案:

答案 0 :(得分:1)

您的文件看起来每行有一个值。假设你想把它们读成三列,那就让SAS为你做。您可以尝试通过要求它们将它们视为分隔符来消除任何制表符或分号。您可以尝试使用INFILE语句中的FLOWOVER选项(这是默认设置)使其自动转到下一行。

data want ;
   dlm='09'X || ';' ;
   infile 'myfile' dlm=dlm flowover ;
   input id $ val1 val2 ;
run;

现在,如果您的数据有空行,则可能会失去同步并开始尝试将AA等文本字符串读入数字变量。因此,如果确实如此,您可以尝试告诉它为每次观察准确读取三行。

data want ;
   infile 'myfile' truncover ;
   input id $ / val1 / val2 ;
run;