I have two variables
Employee Manager
Sam Robert
Robert Daniel
Greg Taylor
Taylor Mark
I want to create a new variables which should be like this
Twoup Oneup Employee
Daniel Robert Sam
Please advise ways to get this output.
Kind Regards
Boin
Proc SQL is one solution. .
Proc Sql;
create table Supervisors as
select b.manager as TwoUp, a.Manager as OneUP, a.Employee
from datasetname as a left join datasetname as b on
a.manager = b.Employee
;
quit;
Give another hash
,
data have;
input employee :$8. manager:$8.;
cards;
Sam Robert
Robert Daniel
Greg Taylor
Taylor Mark
;
run;quit;
data want;
length twoup oneup $ 8;
if _n_=1 then do;
if 0 then set have(rename=manager=_m);
declare hash h(dataset:'have(rename=(manager=_m))');
h.definekey('employee');
h.definedata('_m');
h.definedone();
end;
set have;
if h.find()=0 then do;
oneup=_m;
if h.find(key:oneup)=0 then twoup=_m;
end;
drop _m manager;
run;
Haikuo
thanks Haikuo, it works
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!
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.