我在下面的url找到了一個答案。從CSV導入所有列爲字符?在許多變量CSV數據
Import all columns from CSV as character?
但是,對於我的數據,這個宏只導入43個變數,這應該是4126個變量。
我想這個問題可能來自宏觀語法,其中
做,直到(newvar ='「);
但是,我不能解決這個問題。
有人可以教我如何解決它。
我的csv數據可以下載如下dropbox鏈接。
https://www.dropbox.com/s/m01iaqkg5s0tkl2/1771020.csv?dl=0
%macro readme(dsn,fn);
/* Macro to read all columns of a CSV as character */
/* Parameters: */
/* DSN - The name of the SAS data set to create */
/* FN - The external file to read (quoted) */
/* Example: */
/* %readme(want, 'c:\temp\tempfile.csv'); */
data _null_;
infile &fn;
input;
i = 1;
length headers inputstr $200;
headers = compress(_infile_,"'");
newvar = scan(headers,1,',');
do until (newvar = ' ');
inputstr = trim(inputstr) || ' ' || trim(newvar) || ' $';
i + 1;
newvar = scan(headers,i,',');
end;
call symput('inputstr',inputstr);
stop;
run;
data &dsn;
infile &fn firstobs=2 dsd dlm=',' truncover;
input &inputstr.;
run;
%mend;
%readme(want, 'c:\temp\tempfile.csv');
我不喜歡使用proc導入程序。由於在我的情況下只有很少的觀察和太多的變量,proc導入過程將花費太多時間來識別變量並在3000個變量後截斷變量名稱。 –