全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6636 6
2013-06-20
请教各位高手。在SAS中存在宏的条件语句 %if %then %else。但是这样判断的条件比较少。

尝试以下语句都行不通:

1.
%if %then
%else %if   %then
     ...

2. 嵌套的
%if %then %do ... %end;
   %else %do;
         %if %then do% ... %end;
              %else %do...%end;

请问在宏里面怎样实现多条件的语句?


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-6-20 23:13:58
你最好举个例子把问题讲得清楚一点,你上面写的都没有任何问题
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-6-21 00:27:25
照葫芦画瓢是个很简单的事情

给你摘录一段代码


%macro settax(taxrate);
   %let taxrate = %upcase(&taxrate);
   %if &taxrate = CHANGE %then
      %do;
         data thisyear;
            set lastyear;
            if  sale > 100 then tax = .05;
            else tax = .08;
         run;
      %end;
   %else %if &taxrate = SAME %then
      %do;
         data thisyear;
            set lastyear;
            tax = .03;
            run;
      %end;
%mend settax;

你看看和你的有没有区别
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-6-21 10:42:45
hamsik11 发表于 2013-6-21 00:27
照葫芦画瓢是个很简单的事情

给你摘录一段代码
谢谢回复。我尝试过这样的方式,我的问题是如果使用宏的条件 %else %if 行不通
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-6-21 13:02:00
francisnoten 发表于 2013-6-21 10:42
谢谢回复。我尝试过这样的方式,我的问题是如果使用宏的条件 %else %if 行不通
程序发上来看看...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-6-23 04:45:45
You can have many %else %if ...%then statements in %if %then %else.

Here is an example.

%macro testifthen(var);
%if &var=1 %then %put var=&var;
%else %if &var=2 %then %put var=&var;
%else %if &var=3 %then %put var=&var;
%else  %put var not in (1,2,3);
%mend;

%testifthen(1);
%testifthen(2);
%testifthen(8);
%testifthen(10);
%testifthen(4);
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群