我创建了两个全局宏变量。
日期= 10 /二千〇一十六分之六
B =简单
我想创建一个带有变量的数据集,该变量引用上面的宏
下面是我想要的基于条件的变量。
varible1:Date-引用日期宏变量
变量2:条件 - 如果b =简单则条件= y或者如果b不等于简单则条件= n
所以dateset将如下所示
Date condition
10/6/2016 y
答案 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