现在我将进一步发现的“奇怪现象”记录在下面:
程序1:
- data b1;
- input b;
- cards;
- 1
- 2
- ;
- data b2;
- if _n_<3 then do;
- set b1;
- final=4;
- end;
- run;
- proc print data=b2;
- run;
复制代码
结果为:
-----------------------------------------------------------------------------
Obs b final
1 1 4
2 2 4
3 2 .
-----------------------------------------------------------------------------
程序2:将程序1的final=4从do循环里拿出来,变为:
- data b1;
- input b;
- cards;
- 1
- 2
- ;
- data b2;
- final=4;
- if _n_<3 then do;
- set b1;
- end;
- run;
- proc print data=b2;
- run;
复制代码
结果为:
-----------------------------------------------------------------------------
Obs final b
1 4 1
2 4 2
3 4 2
-----------------------------------------------------------------------------
程序3:将程序1中的final=4改为final+4,变为:
- data b1;
- input b;
- cards;
- 1
- 2
- ;
- data b2;
- if _n_<3 then do;
- set b1;
- final+4;
- end;
- run;
- proc print data=b2;
- run;
复制代码
结果为:
-----------------------------------------------------------------------------
Obs b final
1 1 4
2 2 8
3 2 8
-----------------------------------------------------------------------------
这些记录有助于找出_n_相关的内在机理。