数据结构如下,均为日期型变量:
xdate | ydate | date_1 | date_2 | date_3 | date_4 | date_5 | date_6 |
2013/1/1 | 2013/9/30 | 2012/3/5 | 2013/10/30 | 2013/3/5 | 2013/3/9 | 2013/4/8 | 2013/8/9 |
程序如下:
data test2;
set test;
%let i=1;
n=0;
j=1;
do while(j<=6);
put "i is &i.";
if xdate<=date_&i.<=ydate then n=n+1;
else n=n+0;
%let i=%eval(&i.+1);
put n;
put "i is &i.";
put j;
j=j+1;
end;
run;
期望的n值为4,但是结果为0,。
从日志发现宏变量i的值仅有1和2,求指导,该如何做,多谢。。
日志如下:
322 data test2;
323 set test;
324
325 %let i=1;
326 n=0;
327
328 j=1;
329
330 do while(j<=6);
331
332 put "i is &i.";
333
334 if xdate<=date_&i.<=ydate then n=n+1;
335 else n=n+0;
336
337
338 %let i=%eval(&i.+1);
339
340 put n;
341
342 put "i is &i.";
343 put j;
344
345 j=j+1;
346
347
348 end;
349
350 run;
i is 1
0
i is 2
1
i is 1
0
i is 2
2
i is 1
0
i is 2
3
i is 1
0
i is 2
4
i is 1
0
i is 2
5
i is 1
0
i is 2
6
NOTE: 有 1 个从数据集 WORK.TEST 读取的观测。
NOTE: 数据集 WORK.TEST2 有 1 个观测和 10 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
实际时间 0.01 秒
CPU 时间 0.01 秒