On Mon, 23 Apr 2007, Terry Therneau wrote: > --- Gabor Grothendieck <[EMAIL PROTECTED]> > wrote: > >> Just one caveat. I personally would try to avoid >> using >> global options since it can cause conflicts when >> two different programs assume two different settings >> of the same global option and need to interact. > > I see this argument often, and don't buy it. In any case, for this > particular option, the Mayo biostatistics group (~120 users) has had > stringsAsFactors=F as a global default for 15+ years now with no ill effects. > It is much less confusing for both new and old users. > > Johh Kane asked "Any idea what the rationale was for setting the > option to TRUE?" When factors were first introduced, there was no option > to turn them off. Reading between the lines of the white book (Statistical > Models in S) that introduced them, this is my guess: they made perfect sense > for > the particular data sets that were being analysed by the authors at the time. > Many of the defaults in the survival package, which I wrote, have exactly the > same rationale --- so let us not be too harsh on an author for not forseeing > all the future consequences of a default! > > A place where factors really are a pain is when the patient id is a character > string. When, for instance, you subset the data to do an analysis of only > the females, having the data set `remember' all of the male id's (the original > levels) is non-productive in dozens of ways. For other variables factors > work well and have some nice properties. In general, I've found in my work > (medical research) that factors are beneficial for about 1/5 of the character > variables, a PITA for 1/4, and a wash for the rest; so prefer to do any > transformations myself. > > For the historically curious: > In Splus, one originally fixed this with an override of the function > as.data.frame.character <- as.data.frame.vector > before they added the global option. In R, unfortunately, this override > didn't work due to namespaces, and we had to wait for the option to be > added. (Another dammed-if-you-do dammed-if-you-don't issue. Normally you > don't want users to be able to override a base function, because 9 times out > of 10 they did it by accident and dont' want it either. But when a user > really > does want to do so ...)
That is what 'assignInNamespace' is for (and it came in with namespaces). -- Brian D. Ripley, [EMAIL PROTECTED] 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 ______________________________________________ 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 and provide commented, minimal, self-contained, reproducible code.