Solved
Contributor
Posts: 24

# "Find and Replace" in IML

In IML, is there any way to find every occurrence of a certain number in a matrix and replace it with another number, and what is the syntax for this?

Accepted Solutions
Solution
‎12-07-2015 08:35 PM
SAS Super FREQ
Posts: 4,171

## Re: "Find and Replace" in IML

The LOC function will find the location of the elements that you are looking for. Then you can use regular assignment to replace the numbers.  For example, to replace all values -99 with a missing value, do the following:

``````proc iml;
x = {1 -99   3 4,
5   6 -99 8};
idx = loc(x = -99);   /* find location of elements */
x[idx] = .;           /* replace those elements */
``````

All Replies
Solution
‎12-07-2015 08:35 PM
SAS Super FREQ
Posts: 4,171

## Re: "Find and Replace" in IML

The LOC function will find the location of the elements that you are looking for. Then you can use regular assignment to replace the numbers.  For example, to replace all values -99 with a missing value, do the following:

``````proc iml;
x = {1 -99   3 4,
5   6 -99 8};
idx = loc(x = -99);   /* find location of elements */
x[idx] = .;           /* replace those elements */
``````
🔒 This topic is solved and locked.

Discussion stats