楼主: francisnoten
6689 6

[问答] SAS 中宏的条件语句 [推广有奖]

  • 0关注
  • 0粉丝

小学生

78%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
46 点
帖子
5
精华
0
在线时间
7 小时
注册时间
2013-3-19
最后登录
2016-6-5

楼主
francisnoten 发表于 2013-6-20 23:06:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请教各位高手。在SAS中存在宏的条件语句 %if %then %else。但是这样判断的条件比较少。

尝试以下语句都行不通:

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

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

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


二维码

扫码加我 拉你入群

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

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

关键词:Then else The ELS LSE

沙发
Imasasor 发表于 2013-6-20 23:13:58
你最好举个例子把问题讲得清楚一点,你上面写的都没有任何问题
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

藤椅
hamsik11 发表于 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;

你看看和你的有没有区别

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

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

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

地板
bobguy 发表于 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);

7
TDDHA 发表于 2017-10-16 15:59:49
请问其中的var怎么进行定义,%let不是只能定义单个变量值吗

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-24 09:42