Here one way that should work
data have;
input id var1 $ var2 $ var3 $;
datalines;
1 * 1.2 *
2 * 3.7 0.3
3 0.7 * 2
4 4.9 4.0 1.8
;
proc format;
invalue var1f
'*' = 2
other=[best32.]
;
invalue var2f
'*' = 4.5
other=[best32.]
;
invalue var3f
'*' = 17
other=[best32.]
;
run;
data want(drop=_:);
set have(rename=(var1=_var1 var2=_var2 var3=_var3));
var1=input(_var1,?? var1f.);
var2=input(_var2,?? var2f.);
var3=input(_var3,?? var3f.);
run;
proc print data=want;
run;
... View more