[R] from character to numeric over multiple columns

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Jul 21 12:51:15 CEST 2006


Are the columns factors or character?  I'll try to write code that copes 
with both:

nm <- unique(c(as.character(col1), as.character(col2), as.character(col3)))

DF[] <- lapply(DF, function(x) match(x, nm))


On Fri, 21 Jul 2006, Federico Calboli wrote:

> Hi All,
> 
> I have a data frame of three columns, all of which names. The names in the three 
>   cols overlap up to a point, so I might have *Harry* in all three columns, 
> *Tom* in cols 1 and 3 and *Bob* in col 3 only.
> 
> harry	paul	bob
> anita	harry	tom
> frank	jack	harry
> tom	pete	ben
> ....	
> 
> I want to turn the names into numbers, BUT I want the numeric code for, say, 
> *Harry*, to be the same on all columns.
> 
> Doing
> 
> cbind(as.numeric(col1), as.numeric(col2), as.numeric(col3))
> 
> does not work because the factors are different in each column, hence they get a 
> different number even though the name is the same.
> 
> Ideas?
> 
> Cheers
> 
> Federico
> 
> 

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list