Hi All,
I need your help. I am trying to create a variable "Change" that takes value 1 for years after the CEO change. The information I have includes TIC (firm identifier), YEAR, and CEO. For instance,
TIC YEAR CEO
A 2005 Frank
A 2006 Frank
A 2007 TOD
A 2008 TOD
A 2009 TOD
The output I am trying to get is:
TIC YEAR CEO CHANGE
A 2005 Frank 0
A 2006 Frank 0
A 2007 TOD 1
A 2008 TOD 1
A 2009 TOD 1
I would appreciate if someone share with me the right code.
Thank you
SS
A DO UNTIL loop will do the trick:
data have;
input TIC $ YEAR CEO$;
datalines;
A 2005 Frank
A 2006 Frank
A 2007 TOD
A 2008 TOD
A 2009 TOD
;
data want;
nCEO = 0;
do until (last.TIC);
set have; by TIC CEO notsorted;
nCEO + first.CEO;
CHANGE = nCEO > 1;
output;
end;
drop nCEO;
run;
proc print data=want noobs; run;
PG
You state "variable "Change" that takes value 1 for years after the CEO change" but in your example the variable persists for the next 2 years. Please confirm which is your requirement.
Richard.
Hello Richard,
I would like the output as I showed above. That is, "CHANGE" should be 1 for 2007 (the year of change) and years after that (2008, 2009).
SS
A DO UNTIL loop will do the trick:
data have;
input TIC $ YEAR CEO$;
datalines;
A 2005 Frank
A 2006 Frank
A 2007 TOD
A 2008 TOD
A 2009 TOD
;
data want;
nCEO = 0;
do until (last.TIC);
set have; by TIC CEO notsorted;
nCEO + first.CEO;
CHANGE = nCEO > 1;
output;
end;
drop nCEO;
run;
proc print data=want noobs; run;
PG
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.