将glht的结果输出到R中的LaTeX

时间:2013-10-12 12:17:04

标签: r latex

我想将R中glht对象的结果导出到LaTeX表中。

例如,对于“stargazer”库,可以生成lme对象的格式相当的LaTeX表。

我希望从glht对象摘要的输出中自动创建一个LaTeX表,例如使用

创建的摘要
>summary(glht(dataModel))
Linear Hypotheses:
                                                                        Estimate Std.     Error z value Pr(>|z|)    
Group1 - Group2 == 0   -0.14007    0.01589  -8.813   <0.001 "***"
Group1 - Group3 == 0    -0.09396    0.01575  -5.965   <0.001 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
(Adjusted p values reported -- single-step method)

我知道stargazerxtabletexregreporttoolsmemiscapsrtable等图书馆,但没有一个为glht做的工作:(

关于是否有图书馆的任何提示?

2 个答案:

答案 0 :(得分:7)

您可以在下面的代码示例中找到答案:

multcomp:::print.summary.glht 

x<-glht(...)    
pq<-summary(x)$test

mtests <- cbind(pq$coefficients, pq$sigma, pq$tstat, pq$pvalues)
error <- attr(pq$pvalues, "error")
pname <- switch(x$alternativ, 
                 less = paste("Pr(<", ifelse(x$df ==0, "z", "t"), ")", sep = ""), 
                 greater = paste("Pr(>", ifelse(x$df == 0, "z", "t"), ")", sep = ""), 
                 two.sided = paste("Pr(>|", ifelse(x$df == 0, "z", "t"), "|)", sep = ""))                                                                   
colnames(mtests) <- c("Estimate", "Std. Error", ifelse(x$df ==0, "z value", "t value"), pname)

xtable(mtests)

答案 1 :(得分:2)

来自R-help的Rich提供了帮助线索:

胶合glht对象的技巧是认识到它们非常复杂。 有必要先隔离你想要的部分, 那么Hmisc中的latex()函数效果非常好。

此示例基于?glht

中的一个示例
library(Hmisc)
library(multcomp)

### set up a one-way ANOVA
amod <- aov(breaks ~ tension, data = warpbreaks)

### set up all-pair comparisons for factor `tension'
### using a symbolic description (`type' argument
### to `contrMat()')
amod.glht <- glht(amod, linfct = mcp(tension = "Tukey"))

latex(confint(amod.glht)$confint, dec=3)

嗯,这不会打印出什么摘要(amod.glht)会打印,但是,latex()是我正在寻找的缺失函数