我们知道SAS中的LAG函数可以生成变量值是观测值的滞后观测,见
http://blog.renren.com/blog/220869953/714650606?frommyblog
一个简单的例子:
data test;
input var1 var2 $;
cards;
1 A
2 B
3 C
4 D
5 E
;
run;
data test1;
set test;
nextvar2=lag(var2);
run;
test1结构如下:
那么如何生成变量,变量值是var2向前一期的呢?
即结构是这样的:
解决途径有:
1.set 语句
data test2;
if eof=0 then set test(firstobs=2 keep=var2
rename=(var2=nextvar2))end=eof;
else nextvar2=' ';
set test;
run;
2.Merge
Data test2;
merge test test(firstobs=2 keep=var2 rename=(var2=nextvar2));
run;