我在SAS中导入了一个csv,但是原始文件中的格式不正确。我正在使用地址,因此,例如,城市将错误地连接到街道变量,或者邮政编码将在城市变量中。导入后如何设置参数。当我尝试使用设置长度时,它给了我一条消息,说该长度之前已经设置过,我应该使用DATA步骤。我不知道在哪里确切地做到这一点。
答案 0 :(得分:0)
那么,您可以手动定义将哪些行以及如何读取到SAS中。这是强制导入中的示例。
在这种情况下,只需更改定界符; 。另外,根据您的数据是否具有标题行来正确设置firstOb。除此之外,仅列出变量及其属性。
data WORK.Imported;
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */
infile 'c:\input\datafile.csv' delimiter =';' MISSOVER DSD lrecl=13106 firstobs=2 ;
informat first_var $15. ;
informat second_var $24. ;
informat third_var best32. ;
/*... add as many as your data has */
format first_var $15. ;
format second_var $24. ;
format third_var best12. ;
/*... add as many as your data has */
input
First_var $
Second_var $
CCM
/*... add as many as your data has */
;
if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */
run;
惰性方法只是将proc导入与guesingingrows = max选项一起使用:
proc import datafile="c:\imput\input.csv" out=imprted replace;
DELIMITER=";" ;
getnames=yes;
guessingrows=MAX;
run;
请注意,在很大的文件中,这将花费很长时间。通常最好将行设置为“足够大”,例如32k。
有关导入的更多信息,请参见proc import。或更一般地,在importing/exporting
答案 1 :(得分:0)
这个问题也发生在我身上,问题是在输入的csv文件中使用了一些“换行符”。如果将所有换行符替换为空格,请保存文件,然后导入SAS-它将正确导入数据。 简单的方法是: