I would use the code suggested by @PaigeMiller with some minor modifications, but you could use proc transpose twice followed by a merge, too.
proc transpose
data= work.have
name= Condition
out= work.cond_transposed(rename= (Col1 = CondValue) where= (CondValue = 'Yes'))
;
by Subject;
var Cond:;
run;
proc transpose
data= work.have
name= Admin
out= work.admin_transposed(drop= Admin rename= (Col1 = Administration_Dt) where= (not missing(Administration_Dt)))
;
by Subject;
var Administration:;
run;
data work.want;
merge work.cond_transposed(drop= CondValue)
work.admin_transposed
;
by Subject;
run;
... View more