Working with Missing Values

How to Represent Missing Values in Raw Data

The following table shows how to represent each type of missing value in raw data so that SAS reads and stores the value appropriately.
Representing Missing Values
Missing Values
Representation in Data
. (a single decimal point)
' ' (a blank enclosed in quotes)
.letter (a decimal point followed by a letter, for example, .B)
._(a decimal point followed by an underscore)

How to Set Variable Values to Missing in a DATA Step

You can set values to missing within your DATA step by using program statements such as this one:
if age<0 then
This statement sets the stored value of AGE to a numeric missing value if AGE has a value less than 0.
Note: You can display a missing numeric value with a character other than a period by using the DATA step's MISSING statement or the MISSING= system option.
The following example sets the stored value of NAME to a missing character value if NAME has a value of “none”:
if name="none" then name='';
Alternatively, if you want to set to a missing value for one or more variable values, you can use the CALL MISSING routine. For example:
call missing(sales, name);
This sets both variable values to a missing value.
Note: You can mix character and numeric variables in the CALL MISSING routine argument list.

How to Check for Missing Values in a DATA Step

You can use the N and NMISS functions to return the number of nonmissing and missing values, respectively, from a list of numeric arguments.
When you check for ordinary missing numeric values, you can use code that is similar to the following:
if numvar=. then do;
If your data contains special missing values, you can check for either an ordinary or special missing value with a statement that is similar to the following:
if numvar<=.z then do;
To check for a missing character value, you can use a statement that is similar to the following:
if charvar=' ' then do;
The MISSING function enables you to check for either a character or numeric missing value, as in:
if missing(var) then do;
In each case, SAS checks whether the value of the variable in the current observation satisfies the condition specified. If it does, SAS executes the DO group.
Note: Missing values have a value of false when you use them with logical operators such as AND or OR.