[英]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.