[R] Problem with the recode function

John Fox jfox at mcmaster.ca
Tue Jun 15 18:21:02 CEST 2010


Dear Natalie,

recode() does work for factors; is it possible that you haven't put the
level names in quotes? Example:

> (f <- factor(rep(letters[1:3], 3)))
[1] a b c a b c a b c
Levels: a b c

> recode(f, " c('a', 'b') = 'A'; else='B' ")
[1] A A B A A B A A B
Levels: A B

Best,
 John

--------------------------------
John Fox
Senator William McMaster 
  Professor of Social Statistics
Department of Sociology
McMaster University
Hamilton, Ontario, Canada
web: socserv.mcmaster.ca/jfox


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On
> Behalf Of Natalie Van Zuydam
> Sent: June-15-10 11:59 AM
> To: r-help at r-project.org
> Subject: Re: [R] Problem with the recode function
> 
> Dear Alain,
> 
> Taking a stab in the dark here but I find that if my original column is
> a factor then recode won't work for me.  Would a simple ifelse statement
> not do the same thing?
> 
> test$variable <- ifelse(test$x>=1 & test$x<=5,0,1)
> 
> On 15/06/2010 16:53, John Fox wrote:
> > Dear Alain,
> >
> > I'm afraid that I can't duplicate your problem. First, there is no
recode
> > function in the Rcmdr package; it uses recode from car.
> >
> > Here's a record of my Rcmdr session, using the recode dialog to generate
> the
> > recode command:
> >
> >
> >> test$variable<- recode(test$x, '1:5=0; else=1; ',
as.factor.result=TRUE)
> >>
> >
> >> test # entered in script window
> >>
> >      x variable
> > 1   1        0
> > 2   2        0
> > 3   3        0
> > 4   4        0
> > 5   5        0
> > 6   6        1
> > 7   7        1
> > 8   8        1
> > 9   9        1
> > 10 10        1
> >
> > I noticed that you set as.factor.result=TRUE for one command and FALSE
for
> > the other, but both work for me. It occurred to me that you may have
> entered
> > the recode command in the script window and executed it from there, but
> that
> > works for me too.
> >
> > Best,
> >   John
> >
> > --------------------------------
> > John Fox
> > Senator William McMaster
> >    Professor of Social Statistics
> > Department of Sociology
> > McMaster University
> > Hamilton, Ontario, Canada
> > web: socserv.mcmaster.ca/jfox
> >
> >
> >
> >> -----Original Message-----
> >> From: r-help-bounces at r-project.org
[mailto:r-help-bounces at r-project.org]
> >>
> > On
> >
> >> Behalf Of Alain Guillet
> >> Sent: June-15-10 10:58 AM
> >> To: r-help at r-project.org
> >> Subject: [R] Problem with the recode function
> >>
> >> Hello,
> >>
> >> I am using the recode() function in Rcmdr and the result is not what I
> >> expect so I am almost sure I did something wrong but what...
> >>
> >>   >  test<- data.frame(x=1:10)
> >>   >  library(car)
> >>   >  recode(test$x,'1:5=0 ; else=1', as.factor.result=TRUE)
> >>    [1] 0 0 0 0 0 1 1 1 1 1
> >> Levels: 0 1
> >>
> >> BUT
> >>
> >>   >  library(Rcmdr)  #  recode from the car package is now masked
> >>
> >> Now I recode test$x through the Rmcdr interface and I get the following
> >> code :
> >> test$variable<- recode(test$x, '1:5 = 0; else = 1; ',
> >> as.factor.result=FALSE)
> >>    And a vector of NA as result.
> >>
> >>   >  test$variable
> >> [1] NA NA NA NA NA NA NA NA NA NA
> >>
> >> I am using R 2.11.1 with Rcmdr 1.5-5 on Windows Vista.
> >>
> >>
> >> Regards,
> >> Alain
> >>
> >> --
> >> Alain Guillet
> >> Statistician and Computer Scientist
> >>
> >> SMCS - IMMAQ - Université catholique de Louvain
> >> Bureau c.316
> >> Voie du Roman Pays, 20
> >> B-1348 Louvain-la-Neuve
> >> Belgium
> >>
> >> tel: +32 10 47 30 50
> >>
> >> ______________________________________________
> >> 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.
> >>
> > ______________________________________________
> > 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.
> >
> 
> ______________________________________________
> 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.



More information about the R-help mailing list