Statistical programming, matrix languages, and more

"Find and Replace" in IML

Accepted Solution Solved
Reply
Contributor
Posts: 24
Accepted Solution

"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: 3,232

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 */

View solution in original post


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

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 */
Post a Question
Discussion Stats
  • 1 reply
  • 216 views
  • 0 likes
  • 2 in conversation