首页 > 解决方案 > RMarkdown 中中介函数的输出

问题描述

我试图mediate在我的 RMarkdown (PDF) 文档中包含来自中介包的函数输出。summary当我将 RMarkdown 编织到 PDF 文档时,使用它可以为我提供带有自举分析结果的表格,但是:

  1. 我不喜欢输出的外观,希望有一张更闪亮的桌子。
  2. 我不能用标题标记这个表,它不包含在 RMarkdown 的自动编号中(因此我不能在文本中引用它)。

我尝试使用kablextabs与'mediate`函数的输出一起使用,但它不起作用,因为这两个函数都不接受输出的类(“summary.mediate”“mediate”)。

这就是我的 RMarkdown 文档中的代码块的样子:

```{r med.y1.z6.z7.c, echo = F, comment = "", strip.white = T, fig.cap="test"}

regDFM <- na.omit(as.data.frame(cbind(Y1, X1, Z1, Z6, Z7))) 
regFIT1.C.medY <- lm(Y1 ~ X1+Z1+Z6+Z7+X1:Z1, data = regDFM)
regFIT1.C.medM <- lm(Z7 ~ X1+Z1+Z6+X1:Z1, data = regDFM)
fitMED <- mediation::mediate(regFIT1.C.medM, regFIT1.C.medY, 
                         boot = T, sims = 10, treat="Z6", mediator="Z7")
summary(fitMED)

```

非常感谢任何帮助或想法!

标签: rr-markdown

解决方案


使用 kable 和中介函数的元素,我终于创建了一个不错的 RMarkdown > PDF 输出。

首先,我使用中介函数的相关元素创建了一个 data.frame(被称为“元素”吗?你会怎么称呼它们?)。然后只需将 data.frame 传递给 kable。

感谢@henrik_ibsen 的提示。

这是我的代码:

regDFM <- na.omit(as.data.frame(cbind(Y1, X1, Z1, Z6, Z7))) 
regFIT1.C.medY <- lm(Y1 ~ X1+Z1+Z6+Z7+X1:Z1, data = regDFM)
regFIT1.C.medM <- lm(Z7 ~ X1+Z1+Z6+X1:Z1, data = regDFM)
fitMED <- mediation::mediate(regFIT1.C.medM, regFIT1.C.medY, 
                             boot = T, sims = 10, treat="Z6", mediator="Z7")

bt_effect <- c("Indirekter Effekt", "Direkter Effekt", "Gesamt Effekt", 
               "Anteil direkter Effekt")
bt_est <- c(fitMED$d1, fitMED$z1, fitMED$tau.coef, fitMED$n1)
#bt_p <- format.pval(c(fitMED$d1.p, fitMED$z1.p, fitMED$tau.p, fitMED$n1.p))
bt_p <- c(fitMED$d1.p, fitMED$z1.p, fitMED$tau.p, fitMED$n1.p)
bt_stars <- c(stars.pval(fitMED$d1.p), stars.pval(fitMED$z1.p),
              stars.pval(fitMED$tau.p), stars.pval(fitMED$n1.p))
bt_DF <- data.frame(row.names = bt_effect, format(bt_est, digits = 2), 
                    format(bt_p, nsmall = 3), bt_stars)
colnames(bt_DF) <- c("Koeffizienten", "p-Werte", "")

kable(bt_DF, booktabs = T, align = "c",
      caption = "Bootstraping-Analyse für Mediation") %>%
      footnote(general = c("Simulationen: 1000", "Signifikanzniveaus: ∗ p<0.05; 
                            ∗∗ p<0.01; ∗∗∗ p<0.001"),
               general_title = "Anmerkungen:")

推荐阅读