楼主: ccvvlulei9527
496 2

[SAS EM] 宏变量里的特殊符号”%“怎么能不被当成宏的关键词 [推广有奖]

  • 0关注
  • 0粉丝

初中生

57%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
50 点
帖子
2
精华
0
在线时间
44 小时
注册时间
2021-1-5
最后登录
2025-7-2

楼主
ccvvlulei9527 发表于 2024-5-31 13:56:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我现在有一个宏变量text ,里面放着几个变量的label,需要在宏中逐个使用。但是在循环的过程中,一直报错,%str %nrstr %bquote %nrbquote都试过,都不能解决,请大佬帮忙看看。
复制代码
不会用发帖里的代码功能,就直接贴在这了

%let text= %nrstr(12-导联心电图结果 / 结果(》10%) / 基线结果 / 临床判断) ;

%macro lab();
%do i=1 %to 4;
        %let varlabel=%scan( %str(&text).,&i.,'/');
/*        %let varlabel=%scan( %nrstr(&text).,&i.,'/');*/
/*        %let varlabel=%scan( %bquote(&text).,&i.,'/');*/
/*        %let varlabel=%scan( %nrbquote(&text).,&i.,'/');*/
        %put &varlabel;
%end;
%mend;

%lab();


日志:1    %let text= %nrstr(12-导联心电图结果 / 结果(》10%) / 基线结果 / 临床判断) ;
2
3    %macro lab();
4    %do i=1 %to 4;
5            %let varlabel=%scan( %str(&text).,&i.,'/');
6    /*        %let varlabel=%scan( %nrstr(&text).,&i.,'/');*/
7    /*        %let varlabel=%scan( %bquote(&text).,&i.,'/');*/
8    /*        %let varlabel=%scan( %nrbquote(&text).,&i.,'/');*/
9            %put &varlabel;
10   %end;
11   %mend;
12
13   %lab();
12-导联心电图结果
ERROR: 值“')'n”是无效的 SAS 名。
WARNING: 没有解析宏 ")" 的调用。
ERROR: 值“')'n”是无效的 SAS 名。
WARNING: 没有解析宏 ")" 的调用。
结果(》10%)
基线结果
临床判断.


二维码

扫码加我 拉你入群

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

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

关键词:特殊符号 关键词 Quote label Text SAS宏变量 解析

沙发
ccvvlulei9527 发表于 2024-5-31 14:19:28
日志忘记贴了

藤椅
赵安豆 发表于 2024-6-3 08:52:26
在宏变量中,如果需要使用特殊符号“%”,可以采取以下方法:

1. 将“%”包含在一个字符串中。例如,`%let text= "12%-导联心电图结果" ;`

2. 使用 `%bquote()` 或 `%nrstr()` 函数来避免宏解释器解析特殊符号。例如,`%let text= %nrstr(12-%导联心电图结果) ;`

根据你的代码,你可能需要修改`%let text=`后面的文本,以确保“%”被适当地包含或转义。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 08:05