我正在写一个宏来运行一个csv,并且在宏中创建了56个csv文件,当我尝试在记事本中打开其中一个时,它会打开56,当它打开并且值都是日本人看
%let loca=/bayer/aparajith.chandran/Input;
%macro state_separate();
%do i = 1 %to &cnt_state.;
%let temp= %scan(&state.,&i.);
data test1.onco_&temp.;
set test.onco_LG_input;
if state ne "&temp." then delete;
run;
proc export data=test1.onco_&temp.
outfile="&loca./onco_&temp..csv"
replace
dbms=csv;
delimiter=",";
%end;
%mend;
这是什么原因???
该文件在excel中正常打开,但是当我尝试读取R中的文件时,它会给我警告并删除数据行。
为什么这???
答案 0 :(得分:1)
我想这可能是由于在proc export-statement中使用了什么字符集来编码csv文件,而Notepad假设字符集是utf-8。
使用您指定编码的文件名语句似乎是一个可行的解决方案,如本文所述: Getting rid of BOM between SAS and R
FILENAME myfile 'C:\Documents ... file.txt' encoding="utf-8";
proc export data=lib.sastable
outfile=myfile
dbms=tab replace;
putnames=yes;
run;