[R] Add column to the output of summary(glht).

Marc Schwartz marc_schwartz at me.com
Fri Jun 24 16:13:08 CEST 2016


> On Jun 24, 2016, at 8:45 AM, John Sorkin <JSorkin at grecc.umaryland.edu> wrote:
> 
> 
> I am trying to make the leap from an R users to an R aficionado . . .
> 
> I am trying to understand how add a column to the output of summary (and to understand how summary() works).
> 
> I have run a glmer
> fit0 <- glmer(Fall ~ Group+(1|PID),family=poisson(link="log"),data=data[data[,"Group"]!=0,])
> 
> and I want to perform adjusted multiple comparisons:
> 
> SumTukey <- summary(glht(fit0, linfct= mcp(Group="Tukey")))
> 
> which gives beautiful output:
> 
>> SumTukey
> 
> 	 Simultaneous Tests for General Linear Hypotheses
> 
> Multiple Comparisons of Means: Tukey Contrasts
> 
> 
> Fit: glmer(formula = Fall ~ Group + (1 | PID), data = data[data[, 
>    "Group"] != 0, ], family = poisson(link = "log"))
> 
> Linear Hypotheses:
>           Estimate Std. Error z value Pr(>|z|)
> 2 - 1 == 0   0.5320     0.5075   1.048    0.717
> 3 - 1 == 0   0.6554     0.5000   1.311    0.551
> 4 - 1 == 0   0.9357     0.4655   2.010    0.181
> 3 - 2 == 0   0.1234     0.4174   0.296    0.991
> 4 - 2 == 0   0.4037     0.3754   1.075    0.700
> 4 - 3 == 0   0.2803     0.3651   0.768    0.867
> (Adjusted p values reported -- single-step method)
> 
> I want to add a column to the output (unadjusted p-values), but I don't see how this might be done. The output
> is not a dataframe, nor is it a matix. 
>> class(SumTukey)
> [1] "summary.glht" "glht"  
> 
> It is some class of objects that I don't understand and know nothing
> about. How can I add a column to the output of SumTukey [a.k.a. summary(glht(fit0, linfct= mcp(Group="Tukey")))] ?
> 
> Thank you
> John


Hi John,

Two things that can be helpful are to review the structure of the object returned by summary.glht(), which in your code above would be (see ?str):

 str(SumTukey)

and also review the print method for the object that actually generates the console output. In this case, using:

  multcomp:::print.summary.glht

or 

 getAnywhere(print.summary.glht)

will reveal the code that is used to generate the output that you see above. The print method is not exported from the package's namespace. 

You can review the print method code to see which components of 'SumTukey' are then used to create the output and what internal functions are used to do that.

Once you understand the structure of the object and how that object's content is formatted and output for display by the associated print method for the object class, you can modify things to fit your need by creating, if need be, your own functions to modify the required part or parts of the object itself and then output them.

If you want to understand what summary.glht() is doing, take the same approach as above for the print method, since it is not exported either:

  multcomp:::summary.glht

or 

  getAnywhere(summary.glht)


Regards,

Marc Schwartz



More information about the R-help mailing list