Skip to content

Problem with anova and the new abbreviation restrictions

3 messages · Terry Therneau, Hadley Wickham, Peter Meilstrup

#
An unwanted side effect of the new restrictions on abrreviated names.

The anova.coxph command, in a slavish copy of anova.lm etc, returns a data frame with 
column labels of
     loglik  Chisq  Df  Pr(>|Chi|)

If one tries to extract the final column of the table errors result since it is not a 
standard R variable name.

 > afit <- anova(lm(conc ~ uptake, CO2))
 > afit$P
[1] 2.905607e-06           NA
Warning message:
In `$.data.frame`(afit, P) : Name partially matched in data frame
 > afit$Pr(>F)
Error: unexpected '>' in "afit$Pr(>"

The second is a result of allowing TAB completion of the name.

Yes, experienced folks can sneak around it, but should this be upgraded to match and "ease 
of use" criteria?  Add an [.anova subscript method that allows for shortened names?

I'm still in favor of an option() that controls this new behavior with values of "allow", 
"warn", and "error" so that I can at least turn it off for me.  (I work on many data sets 
created by SAS programmers that are in love with excessively long names, and use batch 
scripts so name completion isn't avail during script creation).  But this is more local to 
me, and does not address the primary question above in a general way.

Terry T
#
On Mon, Jul 1, 2013 at 3:51 PM, Terry Therneau <therneau at mayo.edu> wrote:
I think it's reasonable to emit a warning in that case, although it
would be more useful to say:

Warning message:
P partially matched to `Pr(>|Chi|)` in data frame

Hadley

--
Chief Scientist, RStudio
http://had.co.nz/