RMarkdown中中介函数的输出

时间:2019-05-23 09:58:12

标签: r r-markdown

我正在尝试从我的RMarkdown(PDF)文档中的中介包中植入mediate函数的输出。当我将RMarkdown编织为PDF文档时,使用summary可以将自举分析的结果提供给我该表,但是:

  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)

```

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

1 个答案:

答案 0 :(得分:0)

借助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:")