[Rd] type.convert and doubles

Milan Bouchet-Valat nalimilan at club.fr
Tue Apr 22 22:47:34 CEST 2014


Le mardi 22 avril 2014 à 12:18 -0500, Therneau, Terry M., Ph.D. a
écrit :
> "No global options"
> I don't have an opinion about type.convert, but I must object to Martin's sweeping 
> statement about global options, and stringsAsFactors in particular.  There have been only 
> a few decisions in Splus/R that were so bad that our biostat group modified the core 
> routines in order to return to sane behavior: automatic conversion of strings to factors 
> was one of them --- not just when reading a data set but every bloody time you modified a 
> data frame.  Addition of the global option was a blessing.
> 
> I work in a large biostatistics group whose mission is the advancement of medicine. 
> Nothing frightens me more about the long term viability of R as a tool than sweeping 
> announcements about "principles" which brush pragmatic considerations aside as irrelevant. 
>   Some of us need to get work done.  (S4 zealots can be particularly annoying in this 
> regard.)
> 
> How many of you remember the orignal S decision to have all modeling functions fail upon 
> seeing a missing value?  The na.action argument was only available within lm() etc calls, 
> with no global override, because "missing values are serious artifacts and should not be 
> removed without thought".   Martin- should this be removed from the global options as well?
Very interesting. Do you have any written references about this
behavior, and how it was eventually changed?

Thanks

> Terry T.
> 
> 
> 
> 
> On 04/22/2014 05:00 AM, r-devel-request at r-project.org wrote:
> >>>>>> >>>>>McGehee, Robert<Robert.McGehee at geodecapital.com>
> >>>>>> >>>>>     on Mon, 21 Apr 2014 09:24:13 -0400 writes:
> >      > Agreed. Perhaps even a global option would make sense. We
> >      > already have an option with a similar spirit:
> >      > 'options(?stringsAsFactors"=T/F)'. Perhaps
> >      > 'options(?exactNumericAsString?=T/F)' [or something else]
> >      > would be desirable, with the option being the default
> >      > value to the type.convert argument.
> >
> > No, please, no, not a global option here!
> >
> > Global options that influence default behavior of basic
> > functions is too much against the principle of functional
> > programming, and my personal opinion has always been that
> > 'stringsAsFactors' has been a mistake (as a global option, not
> > as an argument).
> >
> > Note that with such global options, the output of sessionInfo()
> > would in principle have to contain all (such) global options in
> > addtion to R and package versions in order to diagnose behavior
> > of R functions.
> >
> > I think we have more or less agreed that we'd like to have
> > a new function*argument*  to type.convert();
> > passed "upstream" to read.table() and via ... the other
> > read.<foo>() that call read.table.
> >
> >
> >      > I also like Gabor?s idea of a ?distinguishing class?. R
> >      > doesn?t natively support arbitrary precision numbers
> >      > (AFAIK), but I think that?s what Murray wants. I could
> >      > imagine some kind of new class emerging here that
> >      > initially looks just like a character/factor, but may
> >      > evolve over time to accept arithmetic methods and act more
> >      > like a number (e.g. knowing that ?0.1?, ?.10? and "1e-1"
> >      > are the same number, or that ?-9?<?-0.2"). A class
> >      > ?bignum? perhaps?
> >
> > That's another interesting idea. As maintainer of CRAN package
> > 'Rmpfr' and co-maintainer of 'gmp', I'm even biased about this
> > issue.
> >
> > Martin
> >
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list