SAS中文论坛

标题: 求教:一个关于重命名的问题 [打印本页]

作者: shiyiming    时间: 2007-10-8 17:30
标题: 求教:一个关于重命名的问题
由于是新手,故请教一个比较弱智的问题:
如何把v1-v30(变量较多)重命名为存在一定规律的名字,如:id1a1 id2a2 id3a3 id4a4 id5a5 id6b1 id7b2 id8b3 id9b4 id10b5 id11c1 id12c2……
??

多谢大侠!!


thx!!
作者: shiyiming    时间: 2007-10-9 11:49
标题: Re: 求教:一个关于重命名的问题
编宏先生成这些字符串,然后再rename
作者: shiyiming    时间: 2007-10-9 17:06
标题: Re: 求教:一个关于重命名的问题
多谢!~
不过我还没有学习到宏语言~~
作者: shiyiming    时间: 2007-11-17 22:47
标题: Re: 求教:一个关于重命名的问题
新手感兴趣尝试 是不是有点繁琐

%macro rname(data,varn,newdata);   /*data 原数据集 varn 变量个数 newdata 新数据集*/
data &newdata;
set &data;
%let cf=abcdefghigklmnopqrstuvwsyz;
%do i=1 %to &varn;
%let chr=%substr(&cf,%sysfunc(int(&i/5))+1,1);
%let j=%eval(&i-%eval(%sysfunc(int(&i/5))*5));
%if &j=0
%then
%do;
%let chr=%substr(&cf,%sysfunc(int(&i/5)),1);
%let j=5;
%end;
rename v&i=id&i.&chr.&j;
%end;
run;
%mend;


/*例子*/
data a;
v1=1 ;
v2=2;
v3=5;
v4=74;
v5=7;
v6=5;
v7=9;
v8=4;
v9=9;
v10=5;
v11=69;
v12=5;
run;
%rname(a,12,newa);
作者: shiyiming    时间: 2008-1-14 14:52
标题: Re: 求教:一个关于重命名的问题
%macro a;
     data a;
          set a;
          %do i=1 %to 30;
              %let j=mob(%eval(&i.),5);
              rename V&i.=id&i.a&j.;
          %end;
     run;
%mend a;
%a;


呵呵,通俗一点,比较好看懂




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2