簡體   English   中英

SAS - Macro調用另一個宏

[英]SAS - Macro calling another macro

我有SAS的問題。 更確切地說,調用宏,這是在另一個宏內部。 這是一個例子。

data TEST_1;
    do i = 1 to 100;
    a=i**2;
    output;
end;
run;

data TEST_2;
    do i = 1 to 100;
    b=i**3;
    output;
end;
run;

%macro macro_in(file_a);

data result1;
set &file_a;
    c=a+1;
run;

%mend;

%macro_in(TEST_1);

%macro macro_out(file_b);

data result2;
set &file_b._2;
    d=a-1;
run;

data _null_;
    do i = 1 to 2;
    call execute(COMPRESS('%macro_in(' || &file_b || '_' || i || ')'));
    output;
    end;
run;

%mend;

%macro_out(TEST);

第一個宏工作完全正常,但是變量file_b有一個小問題我是第二個宏(代碼不能將它用作內部宏的參數)。 謝謝你的幫助!

macro_out調用macro_in ,您不需要datastep,您可以使用宏語言:

%macro macro_out(file_b);

    data result2;
    set &file_b._2;
        d=a-1;
    run;

    %do i = 1 %to 2;
        %macro_in(&file_b._&i);
    %end;

%mend;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM