2013-10-25 26 views
0

字符我想导入CSV数据库用下面的语句:导入在SAS:被视为日期

PROC IMPORT OUT= WORK.claims 
DATAFILE= database.csv' 
DBMS=csv REPLACE; 
DELIMITER=","; 
GETNAMES=YES;  
RUN; 

的问题是,我有形式“十一五/ 10/2013abcedfg的变量:1234 “我想把它当成一个字符串。但SAS认为它像一个日期,并把日期格式。然后我收到一条错误消息,因为它当然不是日期。

你有解决方案吗?

谢谢。

+0

使用'infile'来读取数据? – JT85

回答

1

也许只是不要依赖PROC IMPORT并在数据步骤中编写导入。 PROC IMPORT应该在您的日志中生成其导入datastep,使用它并进行调整。

+0

这是最好的方法。当你运行PROC IMPORT时,它会为你写一些代码(错误的代码,但代码不会更少)。如果您在SAS IDE中,请使用“运行 - >调用上次提交”。这会将PROC IMPORT代码放入当前的文本编辑器中。然后调整错误的变量的类型,信息等。 – DomPazz

0

相反PROC进口,使用的输入语句

DATA WORK.claims; 
format crazyvar $25 obs_num this_value 8.; 
infile "database.csv" lrecl = 500 /** Number of columns you'll need **/ 
pad = end /** Prevents truncation **/ 
dsd delimiter = ',' /**Delimiter Sensitive Data, and sets delimiter to comma **/ ; 
input obs_num crazyvar $ this_value; 
run; 

同意Vasja,PROC IMPORT有它的用途,但它并不总是你试图在读取数据的类型敏感。本机读取在一定数量的行中(我认为默认情况下是前20个),并猜测它是什么类型的变量。

如果您需要使用PROC IMPORT,则可以将GUESSINGROWS参数设置得更高,以便让程序更具教育性。