全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
458 2
2024-05-31
我现在有一个宏变量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%)
基线结果
临床判断.


二维码

扫码加我 拉你入群

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

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

全部回复
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学术大模型生成,添加下方二维码,优先体验功能试用



二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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