SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1210|回复: 6
打印 上一主题 下一主题

求教sas程序转换编码

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-5-25 02:21:10 | 只看该作者

求教sas程序转换编码

Excel文件中有上万列,每一列是A、T、C、G 4个字母中两个的组合。
如何用SAS编码实现自动转换?

现在想将AA转换成1,AG转换成2,GG转换成3


在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高手指点!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-5-25 18:12:27 | 只看该作者

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;

proc print;run;[/code:mx3gx8ov]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-5-26 00:02:38 | 只看该作者

Re: 求教sas程序转换编码

感谢牛人赐教!为您祈祷人品爆发!

等小弟研究一下~~~~~~
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-5-26 02:04:32 | 只看该作者

Re: 求教sas程序转换编码

求教:能否在survival model下实现循环语句

现在用lifetest 做survival model,
proc lifetest data=yy;
time age*status(0);
strata mi;
run;

现在mi有500个,m1至m500, 能否写个程序把m1-m500分别代入mi。
在这里面好像用不了do语句~~
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2011-5-26 09:35:05 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2011-5-28 22:28:51 | 只看该作者

Re: 求教sas程序转换编码

sounds great! man~~ thank you so much, I am gonna to try it and see how it works.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2012-7-21 21:10:05 | 只看该作者

Re: 求教sas程序转换编码

Mark
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-4 00:52 , Processed in 0.088855 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表