DATA Step, Macro, Functions and more

Recode a variable

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: 21,992

Re: Recode a variable

Posted in reply to Bipingaud

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';

Posts: 3,959

Re: Recode a variable

[ Edited ]
Posted in reply to Bipingaud

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 @@;
0 0 1 1 1 0 1 0 1

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

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


Super User
Posts: 12,365

Re: Recode a variable

Posted in reply to Bipingaud

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
  • 4 in conversation