Hello, I have a panel data set with nearly 30 variables in which code indicating the stock code and year indicating the time period from 2009 to 2015. I wanna make some adjustment about it. 28 of them are dummy variable which only take the value of 0 and 1. Now i have to change the definition for the dummy variables and make new 28 variables. The new rule is that for one stock code, if the variable take the value of 1 in any of year before 2012 then it would be 1 for all years (from 2009 to 2015). the data set like data q1; input a b c d ; datalines; 20002 2009 0 1 20002 2010 1 0 20002 2013 0 1 20002 2014 0 0 30002 2009 0 1 30002 2010 0 0 30002 2013 1 1 30002 2014 1 0 ; run; and I want to get a data set like that I have tried the code below data c4;
set c3;
if c = 1 and year < 2012;
run;
proc sort data = c4 nodupkey;
by a ;
run;
data c4;
set c4;
rename c = c_n;
run;
proc sql;
create table c5 as
select c3.*,c4.c_n
from c3 left join c4
on c3.a = c4.a;
quit;
data c3;
set c3;
if c_n = . then c_n = 0;
else c_n = c_n;
run; It works, but I have to deal with 28 variables using the same code and I am wondering if I can get the data set without wirting those duplicate codes. Thanks, Jane
... View more