2016-02-05 69 views
0

当我试图子集化数据集子集化数据集

 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); 

当宏地方使用,但我得到一个错误,用凡在SAS宏变量讴歌是不是在文件SASHELP.CARS

如何着手/ 感谢 玛吉

回答

0

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

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