簡體   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