2016-01-12 85 views
1

我试图将文本数据文件导入SAS。是这样的,将文本文件导入SAS:没有前导零的日期

EmployeeID Birthday Gender 
10001 5/1/1978 Female 
10005 9/16/1982 Male 
... 

这里是我的代码,

data employee; 
    infile "employee2015.txt" delimiter=' ' firstobs=2; 
    input employeeid birthday MMDDYY10. gender $; 
run; 

它不工作,因为日期的长度不固定,所以下一个变量的性别会受到影响(类似于“ emale“会出现)。如果我将其更改为MMDDYY8。 Gender的专栏中会出现一些数字。

我试过导入生日作为字符,它看起来不错,但是当我尝试格式化为mmddyy10。会有错误报告。我相信必须有一些直接的方法来做到这一点,所以我在这里寻求帮助...

任何建议将不胜感激。

+0

尝试'anydtdte.'信息而不是'mmddyy10.' –

回答

3

删除您的分隔符规范并创建一条informat语句,以正确读取数据。您可能需要定制informat声明以满足您的实际数据需求。

data want; 
informat employeeid $5. birthday mmddyy10. gender $8.; 
format birthday date9.; 
input EmployeeID $ Birthday Gender $; 
cards; 
10001 5/1/1978 Female 
10005 9/16/1982 Male 
; 
run; 

proc print;run; 
+0

非常感谢!问题彻底解决了。不过,我的数据来自文本文件。如果我删除分隔符说明,导入的数据将全部搞乱。我认为这就是信息声明。 –

+0

可能,但SAS使用空格默认分隔符。如果它的选项卡应该被指定为'09'x。 – Reeza

+0

你是对的...我不知道。 –