【发布时间】:2016-03-20 01:51:20
【问题描述】:
我遇到以下代码的错误“找到的位置参数比定义的多”:
%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,但两者都不起作用。非常感谢一些指导。
谢谢。
【问题讨论】:
-
您是如何使用 %bquote 的,出了什么问题?
-
谢谢!! Reeza 在下面使用 %bquote 提供的答案是绝对正确的。我意识到我错误地使用 %put(而不是 %let)定义了我的变量,然后在宏函数中添加了 %bquote。将 %put 更正为 %let 解决了我的问题。