I have an interesting case where all values of -5 in my dataset should be set to missing. I don't want to have to do this for every variable separately, is there way to recode all instances of -5 in the dataset as missing or .S? Any help would be greatly appreciated. This came about from the way a QDS interview was programmed for skipped questions. Thank you in advance!
At this point you may want something like:
data want;
set have;
array n _numeric-;
do _i_=1 to dim(n);
if n[_i_] = -5 then n[_i_] = .;
end;
run;
At this point you may want something like:
data want;
set have;
array n _numeric-;
do _i_=1 to dim(n);
if n[_i_] = -5 then n[_i_] = .;
end;
run;
Do I have to assign the array for all of my variables? I am a little confused by your code, whar does the n_numeric refer to? I was able to get the code to run but it did not do anything to the -5. Thank you for your reply!
looks like just a typo in ballardw's suggestion.
It should be:
array n _numeric_ ;
n is the name of the array.
_numeric_ is a special name meaning "all numeric variables".
I think your initial thought to use .S intead of . also has merit.
I just noticed the typo and got it to run, I used .S and everything seemed to work correctly. Thank you all for your suggestions.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.