使用R为TeX格式化ttest输出

8

我使用stargazer将由R生成的回归输出格式化为Tex格式。然而,这个命令不能用于简单的t.test输出(%错误:未识别对象类型)。我知道“xtable”和“schoRsch”包,但是使用这两个包会丢失一些信息。有没有人知道另一个命令?非常感谢!

1个回答

15

试试Pander吧,它是一个适用于R的全能表格格式化包,支持t.test结果类型。不确定它是否会对您的口味留下太少的信息。

result = t.test(…)
pander(result)

Pander生成的是Markdown表格而不是LaTeX表格,因此需要使用pandoc将结果转换为LaTeX。
另外,您可以使用broom来生成一个常规的表格形式,从您的t.test结果,并使用stargaze查看。
stargazer(tidy(result))

Broom也知道“glance”函数可用于简化输出,但对于“t.test”,结果是相同的。

扩展stargazer以适用于其他类型实际上是不可能的,因为所有内容都是在函数中硬编码的。你唯一能做的就是将感兴趣的数据放入一个data.frame中,并将其传递给stargazer。你可能想尝试一下这种方法。以下是一个基本示例:

stargazer_htest = function (data, ...) {
    summary = data.frame(`Test statistic` = data$statistic,
                         DF = data$parameter,
                         `p value` = data$p.value,
                         `Alternative hypothesis` = data$alternative,
                         check.names = FALSE)
    stargazer(summary, flip = TRUE, summary = FALSE,
              notes = paste(data$method, data$data.name, sep = ': '), ...)
}

然后像这样使用它:
stargazer_htest(t.test(extra ~ group, data = sleep))

产生以下输出:

screenshot

Note the completely wonky alignment and the wrong formatting of negative numbers. I gave up trying to get this to work: I would suggest dropping stargazer, it doesn’t like customisation.
总之,stargazer 的输出并不像他们所声称的那样“美观”或“易于使用”:他们的表格格式混乱,并违反了表格格式的最佳实践(这些实践在 booktabs 包文档中概括)。该函数无法有意义地自定义自己的类型,而是提供了一大堆参数。噢,尽管他们声称支持“大量的模型”,但他们甚至不支持基本的 R 假设检验。
冒着产生分歧的风险,stargazer 是一个相当糟糕的包。

非常感谢Konrad的回答!stargazer(整洁(结果))根本不起作用。pander(结果)生成了一个可接受的表格,但是它删除了我想要保留的平均值和置信区间。 - Hausladen Carina
“完全不起作用”是什么意思?它确实为我生成了一个表格。如果格式对您来说不正确,那么您也可以尝试使用 stargazer(coefficients(summary(result)))。事实上,这可能是所有输出中最有帮助的一个... - Konrad Rudolph
再次感谢您的回答Konrad。 您是正确的,stargazer(整洁(结果))有效,但该表格不适合我的目的。 感谢您的更新。 我想我错过了什么,因为这一次,代码确实无法运行。 如果我使用r中的示例t.test(extra ~ group, data = sleep)并将其放入stargazer(coefficients(summary(t.test(extra ~ group, data = sleep))))中,我没有得到输出。 我在这里缺少什么? 我期待您的回答。 - Hausladen Carina
@HausladenCarina 抱歉,你是对的。我在我的玩具示例中意外地运行了 lm 而不是 t.test。我已经更新了我的答案并尝试了一些更多的方法。但我的结论是:stargazer 很糟糕,不要使用它。 - Konrad Rudolph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接