[R] dummy variable encoding

Richard.Cotton at hsl.gov.uk Richard.Cotton at hsl.gov.uk
Fri Mar 6 11:05:27 CET 2009


> > The best encoding depends upon which language you would like to 
manipulate 
> > the variable in.  In R, genders are most naturally represented as 
factors. 
> >  That means that in an external data source (like a spreadsheet of 
data), 
> > you should ideally have the gender recorded as human-understandable 
text 
> > ("male" and "female", or "M" and "F").  Once the data is read into R, 
by 
> > default R will convert the string to factors (keeping the human 
readable 
> > labels).  This way you avoid having to remember that 1 means male (or 
> > whatever).
> >
> > If you were manipulating the data in a different language that didn't 
have 
> > factors, then it might be more appropriate to use an integer.  Which 
> > integers you use doesn't matter, you need to have a look-up table to 
know 
> > what each number refers to, whatever you choose.
> >
> Yes, that's what I thought. However somebody told me that it is better
> to use 1/2 rather than 0/1 for a 2 level factor such as gender, and I've
> no idea why. I told them it didn't matter, but have since seen quite a
> few examples where they use 1/2 (admittedly in SPSS).

The only benefit that I can see of using 1/2 instead of 0/1 is fairly 
minor.

If you have cases where there are missing values, and you are working in a 
language that doesn't support NA values for integers (or factors; I'm 
thinking of something like C), then you could encode your genders as

0: not recorded
1: female
2: male

Then you can include logic like

if(gender)
{ 
   do something
}

The alternative encoding of 0/1, would be something like

-1: not recorded
0: female
1: male

This makes the code slightly less pretty.

if(gender != -1)
{ 
   do something
}

Again, none of this really applies to R, since you should be using factors 
for this sort of variable.

Regards,
Richie.

Mathematical Sciences Unit
HSL


------------------------------------------------------------------------
ATTENTION:

This message contains privileged and confidential inform...{{dropped:20}}




More information about the R-help mailing list