我想将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)
我知道stargazer
,xtable
,texreg
,reporttools
,memisc
和apsrtable
等图书馆,但没有一个为glht做的工作:(
关于是否有图书馆的任何提示?
答案 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)
胶合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()是我正在寻找的缺失函数