在子集化数据集时使用sas宏中的where

时间:2016-02-05 20:07:55

标签: macros where subset

我试图在对数据集进行子集化时使用宏中的位置

     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

我如何进行/ 谢谢 玛吉

1 个答案:

答案 0 :(得分:0)

您需要确保宏生成有效的SAS语法。在这种情况下,您没有在字符串文字周围添加引号,因此SAS将宏生成的字符串Acura解释为变量名。

%macro subset_by_make (dsn, make);
  data temp;
    set &dsn(where = (make = "&make"));
  run;
%mend subset_by_make;