我试图在对数据集进行子集化时使用宏中的位置
option mprint mlogic;
%macro subset_by_make (dsn, make);
data temp;
set &dsn(where = (make = &make));
run;
%mend subset_by_make;
%subset_by_make(sashelp.cars, Acura);
但是我收到一个错误,即变量Acura没有存档SASHELP.CARS
我如何进行/ 谢谢 玛吉
答案 0 :(得分:0)
您需要确保宏生成有效的SAS语法。在这种情况下,您没有在字符串文字周围添加引号,因此SAS将宏生成的字符串Acura
解释为变量名。
%macro subset_by_make (dsn, make);
data temp;
set &dsn(where = (make = "&make"));
run;
%mend subset_by_make;