在Excel 中使用"搜索替换"功能会遭遇以下问题:譬如第一列中有AA,AG,GG三种组合,可将AA转换成1,AG 2, GG 3,第二列中有GG,GC,CC,将GG转换成3,GC2,CC 1, 但第三列有AA,AC,CC, 那么AA或者CC就必须有一个为3.所以,只能一列列转,不能一次性全转。但数据有上万列~~~~~求教SAS高手指点!!作者: shiyiming 时间: 2011-5-25 18:12 标题: Re: 求教sas程序转换编码 [code:mx3gx8ov]data ahuige(drop=i);
format var1-var3 $2.;
input var1-var3;
array allvar(1:3) var1-var3;
array alltemp(1:3) $20. _temporary_ ;
do i=1 to 3;
if not index(alltemp(i),allvar(i)) then alltemp(i)=left(trim(alltemp(i))||' '||allvar(i));
allvar(i)=2+sign(index(alltemp(i),allvar(i))-4);
end;
cards;
AA CG AC
AG CC AA
GG GG CC
AA CC CC
GG CG AA
;
RUN;
现在mi有500个,m1至m500, 能否写个程序把m1-m500分别代入mi。
在这里面好像用不了do语句~~作者: shiyiming 时间: 2011-5-26 09:35 标题: Re: 求教sas程序转换编码 since the proc wont accept multiple strata, you have to run the proc over again. An example as following
Jingju
[code:1i1zz7r0]data yy;
set sashelp.class;
status =(ranuni(1)>0.35);
array m(10); do i =1 to dim(m); m[i] =(rannor(1) >0); end;
run;
%macro procM(mi=);
proc lifetest data=yy; time age*status(0); strata &mi; run;
%mend procM;
data _null_;
do i =1 to 10;
call execute('%procM(mi='||cats('m', i)||')');
end;
run;[/code:1i1zz7r0]作者: shiyiming 时间: 2011-5-28 22:28 标题: Re: 求教sas程序转换编码 sounds great! man~~ thank you so much, I am gonna to try it and see how it works.作者: shiyiming 时间: 2012-7-21 21:10 标题: Re: 求教sas程序转换编码 Mark