Michael Friendly
2009-Feb-16 14:02 UTC
[R] controlling number of decimals printed in anova tables?
For glm() models, I often find both the print() and summary() method
disappointing if my main interest
is seeing how well a given model fits. A basic display would just
compare the null model to to my model.
I wrote the function below based on code in some package.
How can I make it so that the df in the table are printed with 0 decimals?
# display basic model fit statistics for a glm object
modelFit.glm <-
function (x, digits = max(3, getOption("digits") - 3), ...)
{
dev <- c(x$null.deviance, x$deviance )
df <- c(x$df.null, x$df.residual)
table <- data.frame(dev, df, c(NA, 1-pchisq(x$deviance, x$df.residual)),
row.names=c("Null model", "Model"))
dimnames(table) <- list(c("Null model", "Model"),
c("Deviance", "df",
"Pr(>Chi^2)"))
title <- paste("Analysis of Deviance Table", "\n\tFormula:
",
deparse(x$formula), "\n")
structure(table, heading = title, class = c("anova",
"data.frame"))
}
berkeley <- as.data.frame(UCBAdmissions)
berk.mod2 <- glm(Freq ~ Dept * (Gender+Admit), data=berkeley,
family="poisson")
> modelFit.glm(berk.mod2)
Analysis of Deviance Table
Formula: Freq ~ Dept * (Gender + Admit)
Deviance df Pr(>Chi^2)
Null model 2650.10 23.00
Model 21.74 6.00 0.001352 **
---
Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1
>
--
Michael Friendly Email: friendly AT yorku DOT ca
Professor, Psychology Dept.
York University Voice: 416 736-5115 x66249 Fax: 416 736-5814
4700 Keele Street http://www.math.yorku.ca/SCS/friendly.html
Toronto, ONT M3J 1P3 CANADA
Gabor Grothendieck
2009-Feb-16 15:54 UTC
[R] controlling number of decimals printed in anova tables?
Try this: On Mon, Feb 16, 2009 at 9:02 AM, Michael Friendly <friendly at yorku.ca> wrote:> For glm() models, I often find both the print() and summary() method > disappointing if my main interest > is seeing how well a given model fits. A basic display would just compare > the null model to to my model. > > I wrote the function below based on code in some package. > How can I make it so that the df in the table are printed with 0 decimals?Try this: df <- as.integer(c(x$df.null, x$df.residual))
Gabor Grothendieck
2009-Feb-16 15:56 UTC
[R] controlling number of decimals printed in anova tables?
Or safer: df <- as.integer(round(...)) On Mon, Feb 16, 2009 at 10:54 AM, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:> Try this: > > On Mon, Feb 16, 2009 at 9:02 AM, Michael Friendly <friendly at yorku.ca> wrote: >> For glm() models, I often find both the print() and summary() method >> disappointing if my main interest >> is seeing how well a given model fits. A basic display would just compare >> the null model to to my model. >> >> I wrote the function below based on code in some package. >> How can I make it so that the df in the table are printed with 0 decimals? > > Try this: > df <- as.integer(c(x$df.null, x$df.residual)) >
Dieter Menne
2009-Feb-16 16:08 UTC
[R] controlling number of decimals printed in anova tables?
Gabor Grothendieck <ggrothendieck <at> gmail.com> writes:> > Or safer: > > df <- as.integer(round(...)) >Did you try? I believe it is a problem of printCoefmat that has quite a few options for special column, but none for df. Ask Martin M?chler. Dieter