[R] print method like print.anova()

John Fox jfox at mcmaster.ca
Sat Mar 2 19:32:22 CET 2013


Hi Michael,

Take a look at ?printCoefmat.

I hope this helps,
 John

On Sat, 02 Mar 2013 12:37:36 -0500
 Michael Friendly <friendly at yorku.ca> wrote:
> I have a print method for a set of statistical tests, vcdExtra::CMHtest, 
> for which I'd like to
> have more sensible printing of pvalues, as in print.anova().
> [Testing this requires the latest version of vcdExtra, from R-Forge
> **|install.packages("vcdExtra", repos="http://R-Forge.R-project.org")|**
> ]
> 
> With my current print method, I get results like this, but all Prob 
> values should better
> be reported as something like '<0.0001' .
> 
>  > CMHtest(MSPatients[,,1])
> Cochran-Mantel-Haenszel Statistics for New Orleans Neurologist by 
> Winnipeg Neurologist
> 
>                   AltHypothesis  Chisq Df       Prob
> cor        Nonzero correlation 51.424  1 7.4426e-13
> cmeans  Col mean scores differ 55.393  3 5.6601e-12
> rmeans  Row mean scores differ 53.631  3 1.3450e-11
> general    General association 64.318  9 1.9580e-10
> 
> In the print.CMHtest() function below the lines before # # TODO give the 
> output shown above.
> The lines below try to use print.anova(), but this gives something even 
> worse:
> 
> Cochran-Mantel-Haenszel Statistics for New Orleans Neurologist by 
> Winnipeg Neurologist
> 
>          AltHypothesis  Chisq Df      Prob
> cor                 3 51.424  1 7.440e-13
> cmeans              1 55.393  3 5.660e-12
> rmeans              4 53.631  3 1.345e-11
> general             2 64.318  9 1.958e-10
> 
> Here is the print method, showing the attempt to use print.anova() as well:
> 
> print.CMHtest <- function(x, digits = max(getOption("digits") - 2, 3), 
> ...) {
>      heading <- "Cochran-Mantel-Haenszel Statistics"
>      if (!is.null(x$names)) heading <- paste(heading, "for", 
> paste(x$names, collapse=" by "))
>      # TODO: determine score types (integer, midrank) for heading
> 
>      df <- x$table
>      types <- rownames(df)
>      labels <- list(cor="Nonzero correlation", rmeans="Row mean scores 
> differ",
>              cmeans="Col mean scores differ", general="General association")
>      df <- 
> data.frame("AltHypothesis"=as.character(unlist(labels[types])), df)
>      cat(heading,"\n\n")
>      print(df, digits=digits, ...)
>      cat("\n")
> 
> #    # TODO: use print.anova() method, but this screws up the AltHyp
>      attr(df, "heading") <- paste(heading,"\n")
>      class(df) <- c("anova", "data.frame")
>      print(df)
>      invisible(x)
> }
> 
> 
> 
> 
> -- 
> Michael Friendly     Email: friendly AT yorku DOT ca
> Professor, Psychology Dept. & Chair, Quantitative Methods
> York University      Voice: 416 736-2100 x66249 Fax: 416 736-5814
> 4700 Keele Street    Web:   http://www.datavis.ca
> Toronto, ONT  M3J 1P3 CANADA
> 
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at r-project.org 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