DATA Step, Macro, Functions and more

Recode a variable

Reply
New Contributor
Posts: 2

Recode a variable

[ Edited ]

hey, iam new to sas , recently stuck to a problem.

i am trying to convert 0 to NO and 1 to YES for a variable but get fails every time  . if plzz can anyone help me out , Thankyou. 

Super User
Posts: 17,745

Re: Recode a variable

Ideally you should post what you've tried so we can let you know where your having issues. 

 

This is should be a straightforward if then. 

 

If var=0 the new_var='Yes';

else if var=1 then new_var='No';

else new_var='Other';

SAS Super FREQ
Posts: 3,475

Re: Recode a variable

[ Edited ]

The easiest way is to leave the original data alone but use a SAS format to associate 0->"NO" and 1->"YES". See the article 

"Use SAS formats to bin variables":

 

data Have;
input Answer @@;
datalines;
0 0 1 1 1 0 1 0 1
;

proc format;
value YesNo  
      0 = "No"
      1 = "Yes";
run;

proc freq data=Have;
format Answer YesNo.;  /* assign YesNo format */
tables Answer;
run;

 

Super User
Posts: 10,466

Re: Recode a variable

I'm going to guess that you tried something like:

 

if var=1 then var='yes';

This will not work because the variable VAR is numeric and can not hold character values.

 

To add to @Rick_SAS's suggestion: Formats are very flexible. You could have multiple formats that assign different values to 1/0 and use as needed. Such as True/False  Answered/Not Answered. You could even provide more information such as "Has insurance"/"Does not have insurance", without adding any variable just using a different format for use in a procedure.

Ask a Question
Discussion stats
  • 3 replies
  • 253 views
  • 5 likes
  • 4 in conversation