|
|
沙发

楼主 |
发表于 2010-10-22 15:58:37
|
只看该作者
Re: 如何在数据集中的特定位置插入列
先生成新的变量列,再merge
假设要在列ID后插入一列ADDRESS
[code:g8iu4nvo]
proc sql noprint;
select upcase(name) into :var_list separated by ' '
from dictionary.columns
where libname='WORK' and memname='A';
quit;
%let var1=ID;
%let var2=ADDRESS;
%let pos1=%index(&var_list,&var1);
%let pos2=%eval(&pos1+1+%length(&var1));
%let new_list=%sysfunc(catx(%str( ),%substr(&var_list,1,%eval(&pos1-1)),&var1,&var2,%substr(&var_list,&pos2)));
data c;
retain &new_list;
merge a b;
by id;
run;
[/code:g8iu4nvo] |
|