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
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.