Dear Tom and David,

The source of the problem isn't hard to see if you trace the execution of
recode() via debug(): The test for whether the result can be coerced to
numeric is faulty. I've fixed the bug and will upload a new version of car
to CRAN shortly. In the meantime, you can use 

ss <- recode(nn, "2='Num2'; 4='Num4'", as.factor=TRUE)

Thanks for bringing this bug to my attention.

John

--------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario
Canada L8S 4M4
905-525-9140x23604
http://socserv.mcmaster.ca/jfox 
-------------------------------- 

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Mulholland, Tom
> Sent: Thursday, July 28, 2005 2:01 AM
> To: D. Dailey; r-help@stat.math.ethz.ch
> Subject: Re: [R] Unexpected behavior in recode{car}
> 
> require( car )
> set.seed(12345)
> nn <- sample( c( 2, 4 ), size=50, replace=TRUE ) rr <- 
> recode( nn, "2='TWO';4='FOUR'" ) table( rr, exclude=NULL ) ss 
> <- recode( nn, "2='Num2';4='Num4'" )  # Doesn't work as 
> expected table( ss, exclude=NULL ) ss <- recode( nn, 
> "2='Num2';4='Num4'", TRUE )  #?
> table( ss, exclude=NULL )
> tt <- recode( nn, "2='TWO'; 4='Num4'" )
> table( tt, exclude=NULL )
> uu <- recode( nn, "2='Num2'; 4='FOUR'" ) table( uu, exclude=NULL )
> 
> I looked at the code and found it too difficult to 
> immediately decipher. So does making the result a factor 
> cause any real problems?
> 
> I noticed that the same response happens with any letterset 
> followed by a number recode( nn, "2='Num2'; 4='abc5'" )
> 
> Tom
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED] 
> > [mailto:[EMAIL PROTECTED] Behalf Of D. Dailey
> > Sent: Thursday, 28 July 2005 11:45 AM
> > To: r-help@stat.math.ethz.ch
> > Subject: [R] Unexpected behavior in recode{car}
> > 
> > 
> > Thanks to the R creators for such a great statistical system. 
> > Thanks to
> > the R help list, I have (finally) gotten far enough in R to have a 
> > question I hope to be worth posting.
> > 
> > I'm using the recode function from John Fox's car package and have 
> > encountered some unexpected behavior.
> > 
> > Consider the following example:
> > 
> > ## Begin cut-and-paste example
> > require( car )
> > set.seed(12345)
> > nn <- sample( c( 2, 4 ), size=50, replace=TRUE ) rr <- recode( nn, 
> > "2='TWO';4='FOUR'" ) table( rr, exclude=NULL ) ss <- recode( nn, 
> > "2='Num2';4='Num4'" )  # Doesn't work as expected table( ss, 
> > exclude=NULL ) tt <- recode( nn, "2='TWO'; 4='Num4'" ) table( tt, 
> > exclude=NULL ) uu <- recode( nn, "2='Num2'; 4='FOUR'" ) table( uu, 
> > exclude=NULL ) ## End cut-and-paste example
> > 
> > All but the recoding to ss work as expected: I get a 
> character vector 
> > with 23 instances of either "FOUR" or "Num4" and 27 
> instances of "TWO"
> > or "Num2".
> > 
> > But for the ss line, wherein all the strings to be assigned 
> contain a 
> > digit, the resulting vector contains all NAs. Using str(), 
> I note that 
> > ss is a numeric vector.
> > 
> > Is there a tidy way (using recode) to recode numeric values into 
> > character strings, all of which contain a digit? I have a 
> workaround 
> > for my current project, but it would be nice to be able to 
> use mixed 
> > alphanumeric strings in this context.
> > 
> > Thanks in advance for any insight you can give into this question.
> > 
> > Using R 2.1.1 (downloaded binary) on Windows XP Pro, car version 
> > 1.0-17 (installed from CRAN via Windows GUI). Complete version 
> > information
> > below:
> > 
> >  > version
> >           _
> > platform i386-pc-mingw32
> > arch     i386
> > os       mingw32
> > system   i386, mingw32
> > status
> > major    2
> > minor    1.1
> > year     2005
> > month    06
> > day      20
> > language R
> > 
> >  > t(t( installed.packages()['car',] ))
> >           [,1]
> > Package  "car"
> > LibPath  "C:/Programs/R/rw2011/library"
> > Version  "1.0-17"
> > Priority NA
> > Bundle   NA
> > Contains NA
> > Depends  "R (>= 1.9.0)"
> > Suggests "MASS, nnet, leaps"
> > Imports  NA
> > Built    "2.1.0"
> > 
> > 
> > I subscribe to the help list in digest form, so would 
> appreciate being 
> > copied directly in addition to seeing responses sent to the list.
> > 
> > David Dailey
> > Shoreline, Washington, USA
> > [EMAIL PROTECTED]
> > 
> > ______________________________________________
> > R-help@stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html
> 
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to