- data temp;
- input id year v;
- datalines;
- 1 2012 1.094604158
- 1 2013 0.803045168
- 1 2014 0.373108833
- 2 2012 0.298551868
- 2 2013 1.145010629
- 2 2014 1.322932803
- 3 2013 1.636144589
- 3 2014 0.134853053
- 3 2015 0.478516995
- ;
- run;
- proc sort;
- by id year;
- run;
- data pa;
- set temp;
- id_lag = lag(id);
- v_lag = lag(v);
- if id = id_lag then r = log(v/v_lag);
- run;
- proc print data=pa;
- run;
- data pb;
- set temp;
- if id = lag(id) then r = log(v/lag(v));
- run;
- proc print data=pb;
- run;
注意到,第二种方式生成的增长率变量在第一个观测主体 (id = 1) 的第二年产生了一个空值,而第一种方式可以正常运算。两种方式在剩下的行的计算中均是相同的结果。请问产生这种差异的原因是什么?