"6/23/2015 8:55:36 AM,6/23/2015 7:57:55 AM,test,A B,""C, D "",E-MA,F,Personal G,G one,test - TWO THREE,""I LIKE APPLE"",""ONE, TWO"",FCB,6/27/2015 - 6/27/2016,6/23/2015,BIZ,Personal,MA,NY,Personal,Group,""NYC Ins. Companies"",,,""$NYC NY-MA, (Group)"",""$NYC NY-MA, (Group)"",,,,"
数据看起来是这样的,但是有10k行。我首先尝试使用PROC导入,但它没有将逗号(,)识别为文件中的分隔符。然后,我尝试了数据步骤INFILE,但仍然没有解决问题。
是否有人有使用文本限定符导入文件的经验?
谢谢。
更新
VAR1 VAR2 VAR3 VAR4 VAR5 VAR6 VAR7 VAR8 VAR9 VAR10 VAR11 VAR12 VAR13 VAR14 VAR15 VAR16 VAR15 VAR17 en29 20 en22 en25#en25 26 en28
2015年6/23/2015 8:55 6/23/2015 7:57公司(集团) $NYC纽约-MA(集团),(集团)
发布于 2015-08-12 22:10:33
我认为,如果您能够从文件中删除多余的双引号,您可能会在proc import
上获得更好的运气:
data _null_;
infile "original_file.csv" lrecl = 32000;
file "new_file.csv";
input;
_infile_ = tranwrd(substr(_infile_,2,length(_infile_) - 1),'""','"');
put _infile_;
run;
这个想法非常简单--整行阅读,删除第一个和最后一个字符(假设这些字符总是双引号),然后用双引号替换双引号。
如果您的任何文本字段实际上应该包含双引号,这可能会导致一些进一步的问题,但否则它应该会生成一个文件,该文件应该稍微容易直接导入,可以通过proc导入或者在适当的infile语句上使用dsd
选项。
https://stackoverflow.com/questions/31968892
复制相似问题