[英]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);
您要输入变量名还是变量值? 现在的编写方式是,传入两个变量名ENVOY
和AIR
,您希望使用它们对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.