data have;
set sashelp.heart(keep=smoking_Status);
run;
proc freq data=have order=freq;
table smoking_Status /out=mode;
run;
data mode2(rename=(smoking_Status=_smoking_Status));
set mode(keep=smoking_Status where=(smoking_Status is not missing) obs=1);
run;
data want;
set have;
if _n_=1 then set mode2;
if missing(smoking_Status) then smoking_Status=_smoking_Status;
drop _smoking_Status;
run;