读取固定宽度文件 - 识别空格

时间:2014-12-22 03:02:11

标签: import sas fixed-width

我正在尝试将此固定宽度数据读入SAS:

John Garcia     114   Maple Ave.   
Sylvia Chung    1302  Washington Drive   
Martha Newton   45    S.E. 14th St.

我使用了这段代码:

libname mysas 'c:\users\LELopez243\mysas';
filename address 'c:\users\LELopez243\mysas\address.dat';
data mysas.address2;
infile address;
input Name $ 1-15 Number 16-19 Street $ 22-37;
run;
proc print data=mysas.address2;
run;

得到了这个结果:

Obs Name            Number  Street
1   John Garcia     114     Sylvia Chung 1
2   Martha Newton   45

如果我编辑.dat文件并在每行的末尾手动添加空格,直到它们的长度相同,则代码可以正常工作。任何考虑到不同行长度的代码的想法(不用手动输入空格)。

1 个答案:

答案 0 :(得分:2)

将trunco​​ver选项添加到infile语句中。

当输入数据记录短于INPUT语句期望时,Trunco​​ver会覆盖INPUT语句的默认行为。默认情况下,INPUT语句自动读取下一个输入数据记录。 TRUNCOVER允许您在某些记录短于INPUT语句预期时读取可变长度记录。未分配任何值的变量将设置为缺失。

http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000146932.htm

libname mysas 'c:\users\LELopez243\mysas';
filename address 'c:\users\LELopez243\mysas\address.dat';
data mysas.address2;
infile address truncover;
input Name $ 1-15 Number 16-19 Street $ 22-37;
run;
proc print data=mysas.address2;
run;