I am trying to calculate lag values of multiple variables in a dataset by using two arrays but can't get it to work. Does anyone have any ideas? See attached. Thanks.
I think you are trying to do something like:
data data1 (drop=i);
set data0;
by id;
array vars {*} A B C;
array lagvars(3);
do i = 1 to 3;
lagvars(i)=lag(vars(i));
if first.id then call missing(lagvars(i));
end;
run;
I think you are trying to do something like:
data data1 (drop=i);
set data0;
by id;
array vars {*} A B C;
array lagvars(3);
do i = 1 to 3;
lagvars(i)=lag(vars(i));
if first.id then call missing(lagvars(i));
end;
run;
That worked perfectly, although I changed the second array to hardcode the lag variable names. Thanks!
array lagvars(*) A1 A2 A3;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.