如何在数据步骤中使用 SAS 宏

How to use a SAS Macro inside data step

我 运行 的代码类似于以下代码,但数据步骤不起作用,我似乎无法理解为什么

%macro macro_1(variable);
rsubmit;
data want_&variable. (keep = a b c);
set have;
run;
endrsubmit;
%mend macro_1; 


%macro testing;
%do i=1 %to 3;
%macro_1(&i.); /* My loop here*/
%end;
%mend testing;

%testing;

这是我不断收到的错误:

语法错误,应为以下之一:名称、带引号的字符串、(、/、;、DATALAST , NULL.

我试过使用双符号或在最后使用更多句点,但是没有成功

非常感谢您的帮助!

您已经在本地机器上定义了宏变量 VARIABLE,但是使用宏变量的代码在远程机器上是 运行。在尝试使用之前尝试将该值推送到远程计算机。

%macro macro_1(variable);
%syslput variable=&variable;
rsubmit;
data want_&variable. (keep = a b c);
set have;
run;
endrsubmit;
%mend macro_1;