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;
Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.
Explore Now →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.
Ready to level-up your skills? Choose your own adventure.