If you want to use the value for CALCULATIONS, such as mean number of good health days then you want to have a value of 0. Which means a format is not going to help. Formats are only related to Displaying values.
Options: Recode the value(s) you don't want for calculation into either the same variable (caution applies) or into a new variable.
Another is if the data is read from a text file to use an INFORMAT that does that mapping when the value is first read. Which might look like:
Proc format;
invalue read88to0_
88=0
99=.R
77=.D
other=[2.]
;
run;
/* in a data step to read the file*/
Informat menthlth read88to0_.
Note the informat I propose will read values of 77 and 99 to special missing so you can follow that the original question had a response like 'Don't Know' or 'Refused' if those are the meanings for 77 and 99 (from similar survey data).
This way you can tell why specific values are missing and use them if needed by testing for the .D or .R missing value, such as possibly imputing only some of the values.
... View more