繁体   English   中英

在SAS宏中传递参数

[英]Passing Parameters in a SAS Macro

我正在为学校作业编写一个宏,该宏会将航空公司的名称传递给该宏,我确定它与字符串和缺少的“和”有关,但无法运行。请告诉我什么我做错了

%macro select airine=;

proc means data=mytables.airtraffic noprint ;
where bosflights gt 0 and bospassengers gt 0;
by &airline;
var bosflights bospassengers;
output out=mytables.bosflightsairport sum (bosflights bospassengers)=  flights passengers;`
run;
%mend select;
%select airline = Envoy Air;

您在宏定义和调用中缺少()

%macro select(airline=);
...
%mend select;
%select(airline = Envoy Air);

您要输入变量名还是变量值? 现在的编写方式是,传入两个变量名ENVOYAIR ,您希望使用它们对AIRTRAFFIC数据集中的数据进行分组。

如果您要使用参数值来对数据进行子集化,那么假设您在数据集中有一个名为AIRLINE的变量,那么您可能希望将这样的内容作为宏的主体。

proc means data=mytables.airtraffic noprint ;
  where bosflights gt 0 and bospassengers gt 0;
  where also airline="&airline";
  var bosflights bospassengers;
  output out=mytables.bosflightsairport
         sum(bosflights bospassengers)=  flights passengers
  ;`
run;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM