gpt4 book ai didi

sql - SAS "More positional parameters found than defined"在宏中带有 proc sql

转载 作者:搜寻专家 更新时间:2023-10-30 22:59:08 25 4
gpt4 key购买 nike

我遇到以下代码的错误“找到的位置参数多于定义的”:

%let my_list_of_vars = x, y, z;

%macro sumstats(my_vars);

proc sql;
create table test2 as
select distinct &my_vars.
from my_dataset;
quit;

%mend sumstats;

%sumstats(&my_list_of_vars.);

我不太确定为什么 proc sql 不接受我的变量列表“x”、“y”和“z”,而是返回该错误。我在网上看过,似乎无法找到解决此问题的方法。例如,这个网站 ( http://support.sas.com/kb/31/012.html ) 建议使用 %put 或 %bquote,但都不起作用。非常感谢一些指导。

谢谢。

最佳答案

您的代码解析为以下内容,因此您需要在宏调用中屏蔽逗号。

%sumstats(x, y, z);

不正确:尝试使用 %str()

%sumstats(%str(&my_list_of_vars.));

编辑:您有示例 2,因此 %BQUOTE() 是正确的。

%sumstats(%BQUOTE(&my_list_of_vars.));

关于此问题和解决方案的 SAS 说明: http://support.sas.com/kb/31/012.html

关于sql - SAS "More positional parameters found than defined"在宏中带有 proc sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36109402/

25 4 0