全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2030 3
2012-06-12
我现在有一个变量,为手术名称,surg。是一个字符型的变量,取值如 "左上肺切除","子宫切除术" "乳腺癌根治术"等。我另创建了一个身体各部位器官的名称库,也把它赋值给一个变量organ, 取值为"脑,肾,肝脏,子宫,肺,乳腺,胃,肠,淋巴瘤,白血病"。里面的各个部位用逗号隔开,现在我想从手术名称变量来判定它属于哪个器官的手术,如“子宫切除术”,通过search  organ找到子宫,生成一个新的变量取名为var,值为子宫。如“左上肺切除术”,var对应变量值为"肺",求高手告诉怎么做?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-6-12 17:00:48
我感觉你的数据不会很多,所以随便写了一个代码,如果数据比较多的话,就需要优化一下代码.
data work.a;
        input surg $30.;
        datalines;
左上肺切除
子宫切除术
乳腺癌根治术
;
run;

data work.b;
        length id 8. organ $100.;
        input id organ $;
        datalines;
1 脑
2 肾
3 肝脏
4 子宫
5 肺
6 乳腺
7 胃
8 肠
9 淋巴瘤
10 白血病
;
run;

proc sql noprint;
        create table work.c as
                select a.*,
                        b.*
                from work.a as a,work.b as b;
quit;

data work.d;
        set work.c;
        flag = kindex(surg,organ);
run;

data work.e;
        set work.d;
        where flag > 0 ;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-6-12 17:46:13
chendonghui1987 发表于 2012-6-12 17:00
我感觉你的数据不会很多,所以随便写了一个代码,如果数据比较多的话,就需要优化一下代码.
data work.a;
        i ...
flag=kindex(surg,strip(organ))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-6-12 18:07:50
webgu 发表于 2012-6-12 17:46
flag=kindex(surg,strip(organ))
高手啊,膜拜中,我一直在想怎么用数组,scan,和substr函数实现呢,没想到这样也行
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群