我想使用以下语句导入 csv 数据库:
PROC IMPORT OUT= WORK.claims
DATAFILE= database.csv'
DBMS=csv REPLACE;
DELIMITER=",";
GETNAMES=YES;
RUN;
问题是我有一个形式为“ 25/10/2013abcedfg:1234 ”的变量,我想将其视为字符串。但 SAS 将其视为日期,并输入日期格式。然后我收到一条错误消息,因为它当然不是日期。
你有解决办法吗?
谢谢。
我想使用以下语句导入 csv 数据库:
PROC IMPORT OUT= WORK.claims
DATAFILE= database.csv'
DBMS=csv REPLACE;
DELIMITER=",";
GETNAMES=YES;
RUN;
问题是我有一个形式为“ 25/10/2013abcedfg:1234 ”的变量,我想将其视为字符串。但 SAS 将其视为日期,并输入日期格式。然后我收到一条错误消息,因为它当然不是日期。
你有解决办法吗?
谢谢。
可能只是不依赖 PROC IMPORT 并在数据步骤中编写您的导入。PROC IMPORT 应该在您的日志中生成其导入数据步骤,使用并调整它。
使用输入语句代替 PROC IMPORT
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 参数设置得更高,以便为过程提供更有根据的猜测。