全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7504 6
2012-12-14
大家好,我有一列数据ca,要生成一列数据icd,满足条件:ca的值只要包含"肝",那么icd='c22';包含"肠",icd='c18-20';包含"肺",icd='c33'。例如:

ca icd
原发性肝癌 c22
肝癌 c22
结肠癌c18-20
直肠癌c18-20
肺癌c33
支气管肺癌c33
肺中叶恶性肿瘤c33

之前用的是where语句,分成若干个子集后做的,非常麻烦。请问有没有一个简单一些的方法来实现?




二维码

扫码加我 拉你入群

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

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

全部回复
2012-12-14 10:06:38
if index(ca,'肝') and index(ca,'肺') then icd='c33';
else if index(ca,'肝') then icd='c22';
else if  index(ca,'肺') then icd='c18-20';
else icd='wrong';
二维码

扫码加我 拉你入群

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

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

2012-12-14 10:23:15
data demo;
length ca $20;
  input ca $  ;
datalines;
原发性肝癌
肝癌
结肠癌       
直肠癌
肺癌
支气管肺癌       
肺中叶恶性肿瘤       
;

data want;
   set demo;
       if find(ca,"肝") then  icc="c22";
else if find(ca,"肠") then icc="c18-20";
else if find(ca,"肺")  then icc="c33";
run;
二维码

扫码加我 拉你入群

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

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

2012-12-14 11:24:19
用find函数和index函数有什么区别吗?
二维码

扫码加我 拉你入群

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

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

2012-12-14 11:32:44
pingguzh 发表于 2012-12-14 11:24
用find函数和index函数有什么区别吗?
        1.在字符串中查找某一特定子串并返回子串在原字符串中的位置:
        Position=FIND(target,value<,modifiers,startpos>);
        若子串已查到,则返回其第一次出现的位置,否则返回0。modifiers可能为I或T,I代表大小写不敏感,T代表忽略后方空格,默认为大小写敏感且不忽略后方空格。startpos是一个整数代表了开始查找的起点(用大小表示)和方向(用正负表示),默认为从第1个字符开始向后顺次查找。这两个参数以及参数中字母的顺序是任意的。

        2.在字符串中查找某一特定子串并返回子串在原字符串中的位置:
        Position=INDEX(target,value);
        与FIND功能基本一样,唯一的区别是不包含modifiers,startpos选项。
二维码

扫码加我 拉你入群

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

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

2012-12-14 11:51:24
pingguzh 发表于 2012-12-14 11:24
用find函数和index函数有什么区别吗?
find 是index的升级版。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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