IMPORT導(dǎo)入CSV文件亂碼問題
之前的文章我們提到在做SDTM和ADAM數(shù)據(jù)集的時候很多數(shù)據(jù)需要外部導(dǎo)入,外部導(dǎo)入基本都會用import程序步和csv文件,在導(dǎo)入的時候往往會發(fā)生各種情況,諸如路徑不存在,竄行,亂碼和無法導(dǎo)入。
filename filename "路徑" encoding="gb2312";
proc import datafile=filename out=dataname dbms=csv replace;
getnames=no;
guessingrows=max;
run;
路徑不存在基本就是文件名稱錯誤或者真的是路徑錯誤或者setup程序修改完了以后沒有run造成的,這個比較容易解決。導(dǎo)入的文件如果發(fā)生竄行很有可能是csv文件里面有換行符。
比較讓人頭疼的是亂碼問題,尤其是中文,很容易亂碼,這個時候可以加上encoding="gb2312"這段代碼指定導(dǎo)入文件的編碼,往往這個時候亂碼問題就會解決,屢試不爽,所以我們會習(xí)慣性的在導(dǎo)入csv文件的時候加上encoding="gb2312"。
當(dāng)我們的路徑?jīng)]有任何問題,csv文件里沒有換行符,也加上了encoding="gb2312",還是會有無法導(dǎo)入的情況,SAS關(guān)了又開,開了又關(guān)還是無果,最后發(fā)現(xiàn)問題竟然出在encoding="gb2312"這段代碼上,有些文件無法解析,去掉這段就好了,真實成也蕭何敗蕭何。