亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從SAS數據步驟動態調用宏

從SAS數據步驟動態調用宏

呼啦一陣風 2019-11-20 12:35:32
當作為SAS程序運行時,此代碼可以正常執行:%MyMacro(foo_val, bar_val, bat_val);我使用以下方法創建了一個表:DATA analyses;   input title : $32. weight : $32. response : $32.;   datalines;foo1 bar1 bat1foo2 bar2 bat2;我想對表的MyMacro每一行執行一次analyses。下面的代碼似乎只傳遞字符串值title,weight和response(而不是數據值foo1等),以我的宏(通過調用測試%put命令):DATA _NULL_ ;    set analyses;    %MyMacro(title, weight, response);RUN;analyses在將數據值作為參數傳遞給宏時,如何在表的每個記錄中調用一次宏?目的是針對大量分析實際運行此操作,因此解決方案必須適當地擴展到analyses表中的更多記錄。
查看完整描述

3 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

您可以將變量值放入宏變量,然后%MyMacro使用宏變量作為參數多次調用(數據集中的obs數):


資料:


DATA analyses;

   input title : $32. weight : $32. response : $32.;

   datalines;

foo1 bar1 bat1

foo2 bar2 bat2

;

run;

運行宏的代碼:


data _NULL_;

    set analyses end=fine;

    call symput("ARGUMENT"||compress(_N_),catx(",",title,weight,response));

    if fine then call symput("NLOOPS",compress(_N_));

run;

%*PUT &ARGUMENT1;

%*PUT &ARGUMENT2;


%MACRO MAIN;

%DO L=1 %TO &NLOOPS;

    %MyMacro(&&ARGUMENT&L);

%END;

%MEND;

%MAIN;


查看完整回答
反對 回復 2019-11-20
  • 3 回答
  • 0 關注
  • 916 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號