如果以ue或者其他文本文件打开的话,
这个数据集只有回车符而没有换行符,也就是只有\r而没有\n;
所以SAS在读入的时候,只是当做一行来读入。
在ue中使用正则替换,将\r替换为\r\n读入就没有问题了。
当然也可以以文本形式导入到SAS中,将\r替换为\r\n,
导出数据到一个临时文本中,再以proc import导入。
filename ex "D:\tmp.txt";
data aa;
infile "D:\CrgA_E5C8A19B06_03_13_2013_05_24_25_Profile_data.csv" dlm='0D'x lrecl=32767;
/*分隔符是回车符号*/
input x:$2000. @@;
run;
if _n_=1 then do;
retain id;
id=prxparse("s/\r/\r\n/");
delete;
end;
file ex;
call prxchange(id,-1,x);
put x;
run;
proc import out=ab
datafile=ex
dbms=csv
replace;
delimiter=',';
run;
不过此方法也有缺陷,由于当做一行读入,所以lrecl=32767就成了限制。
至于问什么删除掉第一行读入没有问题,
我想应该是在excel中操作的问题,csv默认都会以excel打开;
试验了一下,如果以excel删除掉此文件的第一行,再保存,ue中打开,
所有的\r都已经改为\r\n,此时以proc import读入自然没哟问题;
而如果直接用ue打开,删除掉第一行,\r不会替换成\r\n,导入时应该还是只有一行。
|