[R] converting a factor in numeric values with direct control of the numeric values
Charles C. Berry
cberry at tajo.ucsd.edu
Sat Jan 17 18:32:40 CET 2009
On Sat, 17 Jan 2009, Charles C. Berry wrote:
> On Sat, 17 Jan 2009, Jörg Groß wrote:
>
>> Hi,
>>
>> I know how to convert a factor-variable into a numeric variable via
>> as.numeric().
>>
>> But how can I control the values that are assigned?
>>
>>
>> For example, I have this factor-variable:
>>
>>
>> z <- c("male", "male", "female")
>> z <- as.factor(z)
>>
>>
>> And I want to convert male in 3 and female into the numeric value 5 (just
>> for the example)
>>
>> so that I get:
>>
>> [1] 3 3 5
>
>
> Like this:
>> z <- c("male", "male", "female")
>> z <- as.factor(z)
Oops! I forgot to copy this line
> num.codes <- c(male = 3, female = 5 )
>> num.codes[ levels(z) ][ z ]
> male male female
> 3 3 5
>>
> or if you want to avoid the names():
>
>> z.to.num <- unname(num.codes)[ match(levels(z),names(num.codes)) ]
>> z.to.num[ z ]
> [1] 3 3 5
>>
>
>
> See
>
> ?as.character
> ?match
> ?levels
>
> HTH,
>
> Chuck
>
>>
>>
>> Thanks for any help!
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
> Charles C. Berry (858) 534-2098
> Dept of Family/Preventive
> Medicine
> E mailto:cberry at tajo.ucsd.edu UC San Diego
> http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901
>
>
>
Charles C. Berry (858) 534-2098
Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901
More information about the R-help
mailing list