*sort data for by group processing;
proc sort data=sashelp.stocks out=stocks1; by stock date;
data stocks2;
set stocks1;
by stock date;
*get previous value;
prev_open = lag(open);
*if first record for the stock group, set to missing to avoid using
previous stocks value;
if first.stock then call missing(prev_open);
*calculate difference when not missing;
if not missing(prev_open) then difference = open - prev_open;
run;
... View more