全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4419 8
2013-07-07
悬赏 288 个论坛币 已解决
我想做一个筛选药物分类的程序,其中第一步列举了要筛选药物的商品名等,
但是各药物之间以各种符号隔开,有全角也有半角,有逗号,括号,顿号等
我建立了一个宏变量如下:

%let drugname=%nrstr(普萘洛尔(心得安),美托洛尔(倍他乐克),阿替洛尔(氨酰心安),比索洛尔(康可),
卡维地洛、拉贝洛尔
氨酰心安、美多心安、醋丁酰心安, 心得静、甲磺胺心安、噻吗心安、柳胺苄心安, 维拉帕米(异搏定,
戊脉安,凡拉帕米,异搏停),
地尔硫卓(恬尔心、硫氮卓酮、合心爽、蒂尔丁),狄戈辛,地毒,拉诺辛;强心素,异羟基洋地黄毒甘,地高辛,异羟基洋地黄毒甙);
%put &drugname;


现在想新生成一个宏变量,将drugname中的所有符号变成"|"或者是空格,并且多个相邻的|或空格变成一个,
如何处理,谢谢各位。

最佳答案

lutian08 查看完整内容

%let drugname=%nrstr(普萘洛尔(心得安),美托洛尔(倍他乐克),;强心素,异羟基洋地黄毒甘,地高辛,异羟基洋地黄毒甙); %put &drugname; data kk; length name $300.; name=prxchange("s/[()、;,,]+/|/",-1,"&drugname"); run; 结果 普萘洛尔|心得安|美托洛尔|倍他乐克|强心素|异羟基洋地黄毒甘|地高辛|异羟基洋地黄毒甙
二维码

扫码加我 拉你入群

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

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

全部回复
2013-7-7 15:27:44
%let drugname=%nrstr(普萘洛尔(心得安),美托洛尔(倍他乐克),;强心素,异羟基洋地黄毒甘,地高辛,异羟基洋地黄毒甙);
%put &drugname;

data kk;
length name $300.;
name=prxchange("s/[()、;,,]+/|/",-1,"&drugname");
run;

结果
普萘洛尔|心得安|美托洛尔|倍他乐克|强心素|异羟基洋地黄毒甘|地高辛|异羟基洋地黄毒甙

二维码

扫码加我 拉你入群

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

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

2013-7-7 18:27:16
lutian08 发表于 2013-7-7 18:18
%let drugname=%nrstr(普萘洛尔(心得安),美托洛尔(倍他乐克),;强心素,异羟基洋地黄毒甘,地高辛,异羟基洋地黄 ...
正规真强大啊,我用一个宏程序写了半年才出来
二维码

扫码加我 拉你入群

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

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

2013-7-7 20:51:49
All can be done within a macro environment.

%let drugname=%nrstr(a,b,;c,d(b),e;f);
%put &drugname;

%let drugname2=%sysfunc(translate(%sysfunc(compbl(%sysfunc(
                translate(&drugname, %str( ), %str(,;%(%)) )))),%str(|), %str( )));

%put &drugname2;
二维码

扫码加我 拉你入群

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

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

2013-7-7 20:58:28
bobguy 发表于 2013-7-7 20:51
All can be done within a macro environment.

%let drugname=%nrstr(a,b,;c,d(b),e;f);
对全角的符号好像没办法
二维码

扫码加我 拉你入群

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

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

2013-7-8 07:08:07
Imasasor 发表于 2013-7-7 20:58
对全角的符号好像没办法
对全角=、 (?) is not a problem.


%let drugname=%nrstr(a,b、b3,;c,d(b),e;f);
%put &drugname;

%let drugname2=%sysfunc(translate(%sysfunc(compbl(%sysfunc(
                translate(&drugname, %str( ), %str(,、;%(%)) )))),%str(|), %str( )));

%put &drugname2;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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