Reputation: 1420
The following is code to create my data set in sas:-
DATA DUMMY;
INPUT PLACE $ YEAR F CAD WAGE;
DATALINES;
Abber 2015 0 0 1000
Abber 2016 0 0 2000
Abber 2017 0 0 3000
Abber 2015 0 1 4000
Abber 2016 0 1 5000
Abber 2017 0 1 6000
Abber 2015 1 0 7000
Abber 2016 1 0 8000
Abber 2017 1 0 4000
Abber 2015 1 1 2000
Abber 2016 1 1 1000
Abber 2017 1 1 9000
NoAbber 2014 0 0 1300
NoAbber 2015 0 0 1000
NoAbber 2016 0 0 2000
NoAbber 2017 0 0 3000
NoAbber 2014 0 1 2000
NoAbber 2015 0 1 4000
NoAbber 2016 0 1 5000
NoAbber 2017 0 1 6000
NoAbber 2014 1 0 1500
NoAbber 2015 1 0 7000
NoAbber 2016 1 0 8000
NoAbber 2017 1 0 4000
NoAbber 2014 1 1 9000
NoAbber 2015 1 1 2000
NoAbber 2016 1 1 1000
NoAbber 2017 1 1 9000
RUN;
So what I wanted to know was if there was a way I could create a variable which has lagged values of the WAGE
variable but it should match the values of PLACE
, F
and CAD
. Hence my resulting dataset should look like the following:-
PLACE YEAR F CAD WAGE L_Wage
Abber 2015 0 0 1000 .
Abber 2016 0 0 2000 1000
Abber 2017 0 0 3000 2000
Abber 2015 0 1 4000 .
Abber 2016 0 1 5000 4000
Abber 2017 0 1 6000 5000
Abber 2015 1 1 7000 .
Abber 2016 1 1 8000 7000
Abber 2017 1 1 4000 8000
Abber 2015 1 0 2000 .
Abber 2016 1 0 1000 2000
Abber 2017 1 0 9000 1000
NoAbber 2014 0 0 1300 .
NoAbber 2015 0 0 1000 1300
NoAbber 2016 0 0 2000 1000
NoAbber 2017 0 0 3000 2000
NoAbber 2014 0 1 2000 .
NoAbber 2015 0 1 4000 2000
NoAbber 2016 0 1 5000 4000
NoAbber 2017 0 1 6000 5000
NoAbber 2014 1 1 1500 .
NoAbber 2015 1 1 7000 1500
NoAbber 2016 1 1 8000 7000
NoAbber 2017 1 1 4000 4000
NoAbber 2014 1 0 9000 .
NoAbber 2015 1 0 2000 9000
NoAbber 2016 1 0 1000 2000
NoAbber 2017 1 0 9000 1000
Thanks in advance for your help.
Upvotes: 0
Views: 97
Reputation: 9109
You need to reset the lag at first.cad
data lag;
set dummy;
by PLACE F CAD;
L_wage = lag(wage);
if first.cad then call missing(l_wage);
run;
Upvotes: 2