What?!? You mean a period (.) isn't the only SAS numeric missing value? Well, there are 27 others: .A .B, to .Z and ._ (period underscore). Your first question might be: "Why would you need more than one missing value?" One situation where multiple missing values are useful involves survey data. Suppose you want to distinguish between "did not answer" and "not applicable?" You could use two different missing values to keep track of each category of missing data. In calculating statistics such as means and stand deviations, all of these missing values are treated the same way as missing values. However, you can keep track of the various categories of missing values in procedures such as PROC FREQ. Here is an example:
You have survey data and you have used codes of 999 for "did not answer" and 888 for "was not applicable." You want to see frequencies on both categories of missing data. Here is some code you could use:
proc format; value response .A = 'Did not answer' .B = 'Was not applicable'; run; data Survey; input ID $ Q1-Q5; array Q; do i = 1 to 5; if Q[i] = 999 then Q[i] = .A; else if Q[i] = 888 then Q[i] = .B; end; drop i; format Q1-Q5 response.; datalines; 001 888 2 4 3 2 002 999 4 3 2 1 003 1 2 888 5 5 004 2 999 888 999 3 ; title "Frequency Data"; proc freq data=Survey; tables Q1-Q5 / nocum nopercent missing; run;
Notice that you can format the values .A and .B to correspond to the two categories of missing values. In the DATA step, you assign .A to values of 999 and .B to values of 888. Finally, you use the TABLES option MISSING so that the missing values appear in the main table. Here is a portion of the output:
More about these missing values is discussed in my book Learning SAS by Example.
Maybe you can think of other uses for using the extra 27 numeric missing values.