【问题标题】:Export result of glht to LaTeX in R将 glht 的结果导出到 R 中的 LaTeX
【发布时间】:2013-10-20 11:24:12
【问题描述】:

我想将 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 工作:(

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

【问题讨论】:

  • 该输出看起来不够规则,无法全部进入表格。您不应该将常规部分与标题和注释分开吗?
  • 好吧,我不是在问如何格式化表格,而是在问是否有一个库可以为我完成这项工作
  • 生成创建特定对象的代码并请求帮助查看该对象的打印方法以查看如何修改它以执行您请求的任何操作,目前这对我来说似乎相当不精确.
  • 仅供参考,交叉发布到 R-help 是一种不好的形式 - 选择 SO 或 R-help。否则答案和澄清请求会变得混乱。

标签: r latex


【解决方案1】:

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

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)

【讨论】:

  • 如果你能详细说明你的答案就好了。
【解决方案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)

这并不能准确打印 summary(amod.glht) 将打印的内容,但是 latex() 是我正在寻找的缺失函数

【讨论】:

  • confint(amod.glht)$confint是一个普通的矩阵,所以不需要Hmiscxtable就够了)。
猜你喜欢
  • 1970-01-01
  • 2020-02-23
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-16
相关资源
最近更新 更多