全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5840 11
2009-11-23
如题,语句如下。请教该如何修改来提高效率呢?虽然以下语句可以实现。谢谢!

DATA X;
SET Y;
WHERE ZName like 'AZATHIOP%' OR ZName like 'IMURA%' OR ZName like 'AZASAN%'
OR ZName like 'CYCLOSP%' OR ZName like 'GENGRAF%' OR ZName like 'NEORAL%'
OR ZName like 'SANGCYA%' OR ZName like 'SANDIMMU%' OR ZName like 'MYCOPHENOL'
OR ZName like 'ATGAM%' OR ZName like 'THYMOGLOBU' OR ZName like 'ANTI-THYMO';
RUN;

因为ZName很多,感觉上面的表达有点冗长,但自己又找不到其他更好的表达方式。期待大家不吝赐教。谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2009-11-23 10:31:24
可以考虑用正则表达式。
data x;
        set y;
        rc=prxparse('/(\bAZATHIOP\w*\b)|(\bIMURAA\w*\b)|(\bZASAN\w*\b)|(\bCYCLOSP\w*\b)/');
        if prxmatch(rc,ZName) then output;
        run;

没测试,仅供参考。
二维码

扫码加我 拉你入群

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

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

2009-11-25 03:21:12
非常感谢!——虽然不懂。
二维码

扫码加我 拉你入群

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

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

2009-11-25 09:27:08
SAS里还可以用与此正则表达式的?!寒!!!!
二维码

扫码加我 拉你入群

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

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

2009-11-25 12:07:24
sas中like语句通常用于寻找某个字符中包含某一个或几个字母,看你列出来的好象是一个字符串的全部字母,如果你知道这个字母串就没有必要再用like语句了。可以选择,
where name in ("AZATHIOP”  "IMURA" "AZASAN"……)
仅供参考!希望有用。
二维码

扫码加我 拉你入群

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

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

2009-11-25 12:36:10
可以考虑用sas中的hash object。。。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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