楼主: vesoski
4196 4

[问答] 宏循环的%if %then 语句报错 [推广有奖]

  • 0关注
  • 0粉丝

大专生

8%

还不是VIP/贵宾

-

威望
0
论坛币
62 个
通用积分
1.1892
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1098 点
帖子
17
精华
0
在线时间
70 小时
注册时间
2012-9-18
最后登录
2022-4-7

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
%macro trend;
data gold_dl;
set gold_ds;
%do i = 1 %to 133;
%if c&i>0 %then d&i=1;
%if c&i<0 %then d&i=-1;
%else d&i=0;
%end;
run;
%mend;
%trend;

代码如上,为什么这个循环会报错!而以下代码就正确运行?一直在宏的逻辑判断中出错,if then好像很难在宏中使用啊!头大!希望根据变量符号设置一个新的逻辑变量,求高手醍醐灌顶!
data gold_dl;
set gold_ds;
if c1>0 then d1=1;
if c1<0 then d1=-1;
else d1=0;
run;

报错如下:
NOTE: 由宏变量 I 生成行。
1       d133
        ----
        22
ERROR 22-322: 语法错误,期望下列之一: !, !!, &, *, **, +, -, /, ;, <, <=, <>, =, >, ><, >=, AND, EQ, GE, GT, IN, LE, LT, MAX,
              MIN, NE, NG, NL, NOTIN, OR, ^=, |, ||, ~=.



二维码

扫码加我 拉你入群

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

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

关键词:Then 宏循环 The Macro trend SAS 循环

回帖推荐

renjingli2011 发表于4楼  查看完整内容

在宏里的data步中可以不用%。
沙发
lovexialulu 发表于 2017-3-5 20:22:27 |只看作者 |坛友微信交流群

  1. %macro trend;
  2. data gold_dl;
  3. set gold_ds;
  4. %do i = 1 %to 133;
  5. if c&i>0 then d&i=1;
  6. else if c&i<0 then d&i=-1;
  7. else d&i=0;;
  8. %end;
  9. run;
  10. %mend;
  11. %trend;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
vesoski + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

藤椅
vesoski 发表于 2017-3-6 22:27:43 |只看作者 |坛友微信交流群
lovexialulu 发表于 2017-3-5 20:22
为啥if then没有加“%”呢?书上写的宏里是用 %if %then的啊?

使用道具

板凳
renjingli2011 发表于 2017-3-7 10:00:01 |只看作者 |坛友微信交流群
在宏里的data步中可以不用%。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
vesoski + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

报纸
vesoski 发表于 2017-3-7 19:08:25 |只看作者 |坛友微信交流群
renjingli2011 发表于 2017-3-7 10:00
在宏里的data步中可以不用%。
谢谢!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 10:14