Satisfy: when A.programtype is missing and B.programtype
Is not UNKNOWN, can update.data A;
input memberid $ membertype $ programtype $ firstname $ lastname $ ;
cards;
A001 type1 . Eric Smith
A002 type1 . John Ed
A003 type2 AA Maria Carr
B001 type1 AA Jack Miller
A005 type2 . Maggie Sliter
A078 type1 . Aan Tailor
B005 type2 . Cliff Honk
;
run;
data B;
input memberid $ programtype $ status $;
cards;
A001 BB active
A002 unknown active
A078 AA active
B004 AA inactive
B005 BB active
C004 . active
;
run;
"Can not introduce new Observations, nor can all update, only conditions"
Can you explain the highlighted part further? Maybe posting the expected result dataset will help.
If I read you right, this should work:
proc sort data=a;
by memberid;
run;
data want;
merge
a (in=a)
b (in=b keep=memberid programtype rename=(programtype=pt))
;
by memberid;
if a;
if b and missing(programtype) and pt ne 'unknown' then programtype = pt;
drop pt;
run;
proc print data=want noobs;
run;
Satisfy: when A.programtype is missing and B.programtype is not UNKNOWN, can update.
data A;
input memberid $ membertype $ programtype $ firstname $ lastname $ ;
cards;
A001 type1 . Eric Smith
A002 type1 . John Ed
A003 type2 AA Maria Carr
B001 type1 AA Jack Miller
A005 type2 . Maggie Sliter
A078 type1 . Aan Tailor
B005 type2 . Cliff Honk
;
run;
data B;
input memberid $ programtype $ status $;
cards;
A001 BB active
A002 unknown active
A078 AA active
B004 AA inactive
B005 BB active
C004 . active
;
run;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.