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:> SumTukeySimultaneous 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 John David Sorkin M.D., Ph.D. Professor of Medicine Chief, Biostatistics and Informatics University of Maryland School of Medicine Division of Gerontology and Geriatric Medicine Baltimore VA Medical Center 10 North Greene Street GRECC (BT/18/GR) Baltimore, MD 21201-1524 (Phone) 410-605-7119 (Fax) 410-605-7913 (Please call phone number above prior to faxing) Confidentiality Statement: This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.
Hi you can check structure of any object by str so str(fit0) should give you an insight how fit0 is structured and str(SumTukey) gives you structure of SumTukey object (which is probably list). You can manipulate with the output as you wish according to the rules of R. Cheers Petr> -----Original Message----- > From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of John > Sorkin > Sent: Friday, June 24, 2016 3:46 PM > To: r-help at r-project.org > Subject: [R] Add column to the output of summary(glht). > > > 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 > > > John David Sorkin M.D., Ph.D. > Professor of Medicine > Chief, Biostatistics and Informatics > University of Maryland School of Medicine Division of Gerontology and > Geriatric Medicine Baltimore VA Medical Center > 10 North Greene Street > GRECC (BT/18/GR) > Baltimore, MD 21201-1524 > (Phone) 410-605-7119 > (Fax) 410-605-7913 (Please call phone number above prior to faxing) > > Confidentiality Statement: > This email message, including any attachments, is for the sole use of the > intended recipient(s) and may contain confidential and privileged > information. Any unauthorized use, disclosure or distribution is prohibited. If > you are not the intended recipient, please contact the sender by reply email > and destroy all copies of the original message. > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.________________________________ Tento e-mail a jak?koliv k n?mu p?ipojen? dokumenty jsou d?v?rn? a jsou ur?eny pouze jeho adres?t?m. Jestli?e jste obdr?el(a) tento e-mail omylem, informujte laskav? neprodlen? jeho odes?latele. Obsah tohoto emailu i s p??lohami a jeho kopie vyma?te ze sv?ho syst?mu. Nejste-li zam??len?m adres?tem tohoto emailu, nejste opr?vn?ni tento email jakkoliv u??vat, roz?i?ovat, kop?rovat ?i zve?ej?ovat. Odes?latel e-mailu neodpov?d? za eventu?ln? ?kodu zp?sobenou modifikacemi ?i zpo?d?n?m p?enosu e-mailu. V p??pad?, ?e je tento e-mail sou??st? obchodn?ho jedn?n?: - vyhrazuje si odes?latel pr?vo ukon?it kdykoliv jedn?n? o uzav?en? smlouvy, a to z jak?hokoliv d?vodu i bez uveden? d?vodu. - a obsahuje-li nab?dku, je adres?t opr?vn?n nab?dku bezodkladn? p?ijmout; Odes?latel tohoto e-mailu (nab?dky) vylu?uje p?ijet? nab?dky ze strany p??jemce s dodatkem ?i odchylkou. - trv? odes?latel na tom, ?e p??slu?n? smlouva je uzav?ena teprve v?slovn?m dosa?en?m shody na v?ech jej?ch n?le?itostech. - odes?latel tohoto emailu informuje, ?e nen? opr?vn?n uzav?rat za spole?nost ??dn? smlouvy s v?jimkou p??pad?, kdy k tomu byl p?semn? zmocn?n nebo p?semn? pov??en a takov? pov??en? nebo pln? moc byly adres?tovi tohoto emailu p??padn? osob?, kterou adres?t zastupuje, p?edlo?eny nebo jejich existence je adres?tovi ?i osob? j?m zastoupen? zn?m?. This e-mail and any documents attached to it may be confidential and are intended only for its intended recipients. If you received this e-mail by mistake, please immediately inform its sender. Delete the contents of this e-mail with all attachments and its copies from your system. If you are not the intended recipient of this e-mail, you are not authorized to use, disseminate, copy or disclose this e-mail in any manner. The sender of this e-mail shall not be liable for any possible damage caused by modifications of the e-mail or by delay with transfer of the email. In case that this e-mail forms part of business dealings: - the sender reserves the right to end negotiations about entering into a contract in any time, for any reason, and without stating any reasoning. - if the e-mail contains an offer, the recipient is entitled to immediately accept such offer; The sender of this e-mail (offer) excludes any acceptance of the offer on the part of the recipient containing any amendment or variation. - the sender insists on that the respective contract is concluded only upon an express mutual agreement on all its aspects. - the sender of this e-mail informs that he/she is not authorized to enter into any contracts on behalf of the company except for cases in which he/she is expressly authorized to do so in writing, and such authorization or power of attorney is submitted to the recipient or the person represented by the recipient, or the existence of such authorization is known to the recipient of the person represented by the recipient.
> 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 > JohnHi 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
This won't make you an R aficionado, but depending on your needs library(broom) tidy(SumTukey) might be useful. This converts the output to a familiar data.frame, making it much easier to work with. Best, Ista On Jun 24, 2016 9:48 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 > > > John David Sorkin M.D., Ph.D. > Professor of Medicine > Chief, Biostatistics and Informatics > University of Maryland School of Medicine Division of Gerontology and > Geriatric Medicine > Baltimore VA Medical Center > 10 North Greene Street > GRECC (BT/18/GR) > Baltimore, MD 21201-1524 > (Phone) 410-605-7119 > (Fax) 410-605-7913 (Please call phone number above prior to faxing) > > Confidentiality Statement: > This email message, including any attachments, is for ...{{dropped:16}}