[R] understanding print.summary.lm and perhaps print/show in general

Christos Hatzis christos at nuverabio.com
Fri Mar 9 16:09:21 CET 2007


Paul,

Usually summary methods perform some computations if needed and then change
the class of the original object so that a print method can be called for
the new summary object.

In this case, this is done at the end of the summary.lm method:

...
    if (!is.null(z$na.action)) 
        ans$na.action <- z$na.action
    class(ans) <- "summary.lm"
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
    ans
}

So then print.summary.lm does all the job displaying the summary.lm object.
To see that function do

getAnywhere(print.summary.lm)

Then you can then modify that function as needed.

-Christos

Christos Hatzis, Ph.D.
Nuvera Biosciences, Inc.
400 West Cummings Park
Suite 5350
Woburn, MA 01801
Tel: 781-938-3830
www.nuverabio.com
 


> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch 
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Paul Bailey
> Sent: Friday, March 09, 2007 9:34 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] understanding print.summary.lm and perhaps 
> print/show in general
> 
> I'm trying to understand how R prints summary.lm objects and 
> trying to change it slightly for a summary function that 
> calculates standard errors using an alternative method.
> 
> I've found that I can modify a summary.lm object and then it 
> prints the modified way but I want to change a few things in 
> the print method that I think I might just be able to do. One 
> is that I want the coefficients table to print a different 
> header (other than "Std. Error"). I've tried changing the 
> column name of the summary$coef matrix and this works for 
> calls to printCoefmat but it still prints out "Std. Error"
> when I pass  the summary.lm to the command line by itself. I 
> don't understand this behavior. When I do this (enter an 
> object on the command line by itself), does it then calls the 
> print / show method associated with that objects class, in 
> this case, summary.lm? Below is some sample code to reproduce 
> the behavior I don't understand and a comment regarding the 
> result I don't understand.
> 
> Cheers,
> Paul
> 
> #####
> lma <- lm(dist ~ speed, data=cars)
> suma <- summary(lma)
> colnames(suma$coef) <- c(LETTERS[1:4])
> printCoefmat(suma$coef) # prints what I expect suma # the 
> above is the print behavior question regards, # why does the 
> coefficients matrix have in its header # the usual "Estimate 
> Std. Error t value Pr(>|t|)"
> # I expect "A B C D" as above in the call to printCoefmat
> 
> ______________________________________________
> R-help at 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.
> 
>



More information about the R-help mailing list