我有2個表:零售與我的數據和col_dic作爲列名字典。在col_dic中有2列 - eng_name和eng_name_bl。SAS名稱與空白重命名錶
因此次代碼:
data _null_;
set col_dic end = last;
if _n_ eq 1 then call execute('proc datasets nolist lib=work; modify retail; rename');
call execute(catx('=', eng_name,eng_name_bl));
if last then call execute(';quit;');
run;
執行日誌後,給出了一個錯誤,它在後新列名的空白想要「=」。 我該如何避免它?
示例,它所做的工作:
所有的data col_dic;
length eng_name eng_name_bl $20;
eng_name = 'AGE';
eng_name_bl = 'AGE_FIX';
output;
eng_name = 'HEIGHT';
eng_name_bl = 'HEIGHT_FIX';
output;
run;
data class;
set sashelp.class;
run;
data _null_;
set col_dic end = last;
if _n_ eq 1 then call execute('proc datasets nolist lib=work; modify class; rename');
call execute(catx('=', eng_name,eng_name_bl));
if last then call execute(';quit;');
run;
看起來您在第二次調用執行後沒有使用單引號。試試這個:call execute('catx(「=」,'eng_name','eng_name_bl')'); –
它根本不起作用。 – user3013203
你想改變表名或列名嗎?請提供生成錯誤消息的代碼的[完整可重現示例](http://www.stackoverflow.com/help/mcve)。 – user667489