全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4568 4
2017-03-05
%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, ^=, |, ||, ~=.



二维码

扫码加我 拉你入群

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

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

全部回复
2017-3-5 20:22:27

复制代码
二维码

扫码加我 拉你入群

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

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

2017-3-6 22:27:43
lovexialulu 发表于 2017-3-5 20:22
为啥if then没有加“%”呢?书上写的宏里是用 %if %then的啊?
二维码

扫码加我 拉你入群

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

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

2017-3-7 10:00:01
在宏里的data步中可以不用%。
二维码

扫码加我 拉你入群

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

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

2017-3-7 19:08:25
renjingli2011 发表于 2017-3-7 10:00
在宏里的data步中可以不用%。
谢谢!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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