Chapter Contents
Chapter Contents
Language Reference

REPLACE Statement

replaces values in observations and updates observations

REPLACE <range> <VAR operand> <WHERE(expression)>;

The inputs to the REPLACE statement are as follows:
specifies a range of observations.

selects a set of variables.

is evaluated for being true or false.
The REPLACE statement replaces the values of observations in a SAS data set with current values of IML matrices with the same name. Use the range, VAR, and WHERE arguments to limit replacement to specific variables and observations. Replacement matrices should be the same type as the data set variables. The REPLACE statement uses matrix elements in row order replacing the value in the ith observation with the ith matrix element. If there are more observations in range than matrix elements, the REPLACE statement continues to use the last matrix element.

For example, the statements below cause all occurrences of ILL to be replaced by IL for the variable STATE:
   replace all var{state} where(state="ILL");

You can specify a range of observations with a keyword or by record number using the POINT option. You can use any of the following keywords to specify a range:
all observations

the current observation

NEXT <number>
the next observation or the next number of observations

all observations after the current one

POINT operand
observations by number, where operand can be one of the following:

Operand Example
a single record numberpoint 5
a literal giving severalpoint {2 5 10}
record numbers 
the name of a matrixpoint p
containing record numbers 
an expression in parenthesespoint (p+1)
If the current data set has an index in use, the POINT option is invalid.

You can specify a set of variables to use with the VAR clause. The variables argument can have the following values: Below are examples showing each possible way you can use the VAR clause:
   var {time1 time5 time9}; /* a literal giving the variables */
   var time;                /* a matrix containing the names  */
   var('time1':'time9');    /* an expression                  */
   var _all_;               /* a keyword                      */
The WHERE clause conditionally selects observations, within the range specification, according to conditions given in the clause. The general form of the WHERE clause is

WHERE( variable comparison-op operand)

In the statement above,
is a variable in the SAS data set.

is any one of the following comparison operators:
less than

less than or equal to

equal to

greater than

greater than or equal to

not equal to

contains a given string

does not contain a given string

begins with a given string

sounds like or is spelled similar to a given string

is a literal value, a matrix name, or an expression in parentheses.
WHERE comparison arguments can be matrices. For the following operators, the WHERE clause succeeds if all the elements in the matrix satisfy the condition:

 ^=   ^?   <   <=   >   >=

For the following operators, the WHERE clause succeeds if any of the elements in the matrix satisfy the condition:

 =   ?   =:   =*

Logical expressions can be specified within the WHERE clause using the AND (&) and OR (|) operators. The general form is

 clause&clause(for an AND clause)
 clause|clause(for an OR clause)

where clause can be a comparison, a parenthesized clause, or a logical expression clause that is evaluated using operator precedence.

Note: The expression on the left-hand side refers to values of the data setvariables, and the expression on the right-hand side refers to matrix values.

The code statement below replaces all variables in the current observation:


Chapter Contents
Chapter Contents

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.