data one;
input var1 $ var2;
datalines;
A 10
B 22
C 5
D 41
E 33
;
run;
data two;
/*添加END这个参数为了检验是否到了最后的一个观测对象*/
set one end=finished;
/*如果没有到最后一个观测,执行DO循环里面的语句*/
if not finished then do;
/*定义和计算读入的观测的PT值,根据自动变量_N_来计算*/
pt = _N_ + 1;
/*重复SET,并且修改变量VAR2的名字,确定读入数据时执行的顺序步骤,按照PT的值的从小到大的顺序来读入相应的观测数据*/
set one (keep= var2 rename= (var2 = next_var2)) point=pt;
/*将当前数据集中的VAR2减去读入进行中的NEXT_VAR2*/
diff = var2 - next_var2;
end;
else next_var2 = .;
run;
proc print; run;