BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
vraj1
Quartz | Level 8

I need to change non missing observations into "X" and keep missing as '.'

I used the below code

data fin(drop=i);
set qs2;
array nvar(i)  _numeric_;
do i= 1 to dim(nvar);
if nvar(i) ne . then nvar(i)= 'X';
end;
run;

 But as the values are numeric and i am converting them as character i get an error.

 

Can there be any other way in arrays to do

1 ACCEPTED SOLUTION

Accepted Solutions
gamotte
Rhodochrosite | Level 12

Hello,

 

You can use a format :

proc format;
value X .='.'
       other='X';
run;

proc print data=sashelp.class;
var _NUMERIC_;
format _NUMERIC_ X.;
run;

View solution in original post

2 REPLIES 2
gamotte
Rhodochrosite | Level 12

Hello,

 

You can use a format :

proc format;
value X .='.'
       other='X';
run;

proc print data=sashelp.class;
var _NUMERIC_;
format _NUMERIC_ X.;
run;
RW9
Diamond | Level 26 RW9
Diamond | Level 26

Do not however, that doesn't "change" the results, only displays them differently.  If you really want to "change" the data, then convert the column to character and then the replace should work fine

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1069 views
  • 0 likes
  • 3 in conversation