楼主: chenj89
924 1

宏参数解析 [推广有奖]

  • 0关注
  • 0粉丝

初中生

76%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
234 点
帖子
12
精华
0
在线时间
16 小时
注册时间
2010-6-27
最后登录
2016-9-20

楼主
chenj89 发表于 2016-9-20 11:22:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
%let ptitle  = %nrbquote(Protocol No: 00-0000/1234 and 5678) ;

%macro area;
%global areaid;
%let areaid=%scan(&ptitle,2,/);
%put  &areaid;
%if &areaid= 1234 and 5678 %then %do;
  %let areaid=%str(Combined);
%end;
%put  &areaid;
%mend area;

%area;

我的目的是把 "1234 and 5678" 替换成 " Combined". 请问为什么最后 宏参数 areaid 没有变化?

PS: 如果把上面红色部分这样写, 就是成功的, 为什么呢?
%if &areaid= 5678 %then %do;
  %let areaid=%str(Combined);
%end;

二维码

扫码加我 拉你入群

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

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

关键词:combined Protocol combine Global Title

沙发
麦弥 发表于 2016-9-20 13:49:36
因为字符串中包含and, SAS将其看作mnemonic operators. 改一下就好了
%let ptitle  = %nrbquote(Protocol No: 00-0000/1234 and 5678) ;

%macro area;
%global areaid;
%let areaid=%qscan(&ptitle,2,/);
%put  &areaid;
%if &areaid=%str(1234 and 5678) %then %do;
  %let areaid=%str(Combined);
%end;
%put  &areaid;
%mend area;

%area;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-10 15:19