在 R 中,在 LaTeX、PDF 或 HTML 中从 "IRR" 包输出中生成 "pretty" 结果 table

In R, make a "pretty" result table in LaTeX, PDF, or HTML from "IRR" package output

背景

我正在使用 R 中的 irr 包为我正在做的项目生成一些评分者间的可靠性统计数据。下面是 Fleiss 的 Kappa 使用包内置数据的示例:

install.packages("irr")
library(irr)
data("diagnoses", package = "irr")
diagnoses2 <- diagnoses[, 1:3]
kappam.fleiss(diagnoses2)

这给出了一个简单的小输出 table,在 R 控制台中看起来像这样:

问题与期望的结果

我想“美化”这个输出,以便我可以将它导入到我用来编写结果的 LaTeX 文档中。

基本上我会采用任何格式,只要它或多或少是自动的:LaTeX、PDF 或 PNG 图像,甚至是 table 的 HTML 版本。问题是我有几个这样的输出 tables 要制作,我宁愿不必笨拙地手动将它们转换为 LaTeX 格式。如果必须的话,我会这样做,但我想节省时间。

我试过的

我试过使用 knitr 像这样:

knitr::kable(diagnoses2, "latex")

但效果不是很好:cannot coerce class ‘"irrlist"’ to a data.frame.

我看过另外两个在过去对我有帮助的软件包,texregstargazer,但是他们的文档没有说他们支持 irr 输出所以我还没有真正尝试过。 (虽然我会一次 post 这个。)与此同时,我也在检查 this post 看看是否有任何效果。感谢您的宝贵时间。

编辑/附录

@akrun 和@TarJae 使用新颖的(对我而言)方法和程序包在下面提供了一些简洁的答案。这些方法可能对那些不是 irr 但在 texregstargazer 等包中也没有“官方支持”的包的统计输出有很大帮助。换句话说,我认为它们可能会推广到其他情况。希望各位读者多多关注!

如果我们直接在输出上应用 data.frame,它不会工作,因为 class

as.data.frame(kappam.fleiss(diagnoses2))

Error in as.data.frame.default(kappam.fleiss(diagnoses2)) : cannot coerce class ‘"irrlist"’ to a data.frame

我们可能会在 do.call

内转换为 data.frame
out <- do.call(data.frame, kappam.fleiss(diagnoses2))

-检查结构

> str(out)
'data.frame':   1 obs. of  8 variables:
 $ method   : chr "Fleiss' Kappa for m Raters"
 $ subjects : int 30
 $ raters   : int 3
 $ irr.name : chr "Kappa"
 $ value    : num 0.534
 $ stat.name: chr "z"
 $ statistic: num 9.89
 $ p.value  : num 0

一旦我们转换为 data.framekable 将起作用

> knitr::kable(out, "latex")

\begin{tabular}{l|r|r|l|r|l|r|r}
\hline
method & subjects & raters & irr.name & value & stat.name & statistic & p.value\
\hline
Fleiss' Kappa for m Raters & 30 & 3 & Kappa & 0.5343368 & z & 9.893792 & 0\
\hline
\end{tabular}

我们可以使用 gtsummary。详细改编见这里:http://www.danieldsjoberg.com/gtsummary/

out <- do.call(data.frame, kappam.fleiss(diagnoses2))

library(gtsummary)

out %>% 
  tbl_summary