如何调用全局宏变量

时间:2016-10-06 06:08:15

标签: sas

我创建了两个全局宏变量。

日期= 10 /二千〇一十六分之六

B =简单

我想创建一个带有变量的数据集,该变量引用上面的宏

下面是我想要的基于条件的变量。

varible1:Date-引用日期宏变量

变量2:条件 - 如果b =简单则条件= y或者如果b不等于简单则条件= n

所以dateset将如下所示

Date         condition
10/6/2016       y

1 个答案:

答案 0 :(得分:2)

您有两种选择。

第一(在数据步骤中使用宏变量):

data result;
    format date ddmmyy10.;
    date = input("&date", ddmmyy10.);

    if "&b" = "simple" then condition = "y";
    else condition = "n";
run;

第二个(根据宏变量值创建宏并生成SAS代码):

%macro test;
data result;
    format date ddmmyy10.;
    date = input("&date", ddmmyy10.);

    %if &b = simple %then %do;
        condition = "y";
    %end;
    %else %do; 
        condition = "n";
    %end;
run;
%mend test;

%test

编辑:

或使用PROC SQL:

%let date=12/10/2016;
%let b=simple;

proc sql;
    create table result
    (
        date num format=ddmmyy10.,
        condition char(1)
    );
quit;

%macro insert;
proc sql;
    %if &b = simple %then %do;
        %let condition = y;
    %end;
    %else %do;
        %let condition = n;
    %end;

    insert into result (date, condition) values (%sysfunc(inputn(&date, ddmmyy10.)), "&condition"); 
quit;
%mend insert;

%insert