【问题标题】:Reporting regression tables using rmarkdown in Word format使用 rmarkdown 以 Word 格式报告回归表
【发布时间】:2018-04-29 12:27:39
【问题描述】:

尝试使用 rmarkdown 以 Word 格式报告回归表似乎是不可能的。在尝试了几个小时和几个选项(如here)之后,没有人在我的情况下工作。我想使用 Markdown 报告 lm 模型并渲染到 .doc 文件。

方法一:

使用memisc 包创建mtable 对象并使用pander 进行渲染:

> lm0 <- lm(hp ~ wt, mtcars)
> lm1 <- lm(qsec ~ hp, mtcars)
> lm2 <- lm(qsec ~ wt, mtcars)
> 
> library(memisc)
> 
> mt <- mtable(lm0, lm1, lm2)
> 
> pander::pander(mt)
Error in x[[i]] : subíndice fuera de  los límites
Además: Warning message:
In pander.default(mt) :
  No pander.method for "memisc_mtable", reverting to default.

方法二:

创建一个 html 对象并使用includeHTML 包含在内。到目前为止,这是我想要的输出的封闭方法。但是该表只包含这样的一列:

```{r}
stargazer::stargazer(lm0, lm1, lm2, type = "html", title = "Results", out = "./pp.html")
shiny::includeHTML("pp.html")
```

上面的代码在 word 文档中生成:

方法三:

使用xtable 也会产生与上述相同的输出。

有什么建议吗?

【问题讨论】:

  • 我通常使用任何库生成 HTML 页面,然后复制到 word。
  • @A.Suliman 谢谢,但我不想要复制过去的过程。

标签: r r-markdown knitr


【解决方案1】:

使用write_html(来自 memisc 包):

write_html(mt, "mt.html")

现在在 Word 中打开 mt.html 文件。这就是它在 Word 中的样子。 (截图后继续)

或者使用它来将 filePathIn(这是创建的 html 文件的路径)转换为 filePathOut(这是要从中创建的 docx 文件的路径)。这适用于 Windows,甚至在 pandoc 不使用的情况下,因为它使用 Word 本身进行从 html 到 docx 的翻译。 (如果您想要一个 doc 文件而不是 docx,则在 filePathOut 定义中将“docx”替换为“doc”,并在 SaveAs 行中将 16 替换为 0。参见 wdSaveFormat Enumeration。)

library(RDCOMClient)

filePathIn <- file.path(getwd(), "mt.html")
filePathOut <- sub("html$", "docx", filePathIn)

w <- COMCreate("Word.Application")
doc <- w[["Documents"]]
od <- doc$Open(filePathIn)
od$SaveAs(filePathOut, 16)
w$Quit()

【讨论】:

  • 绝对导出为html 格式然后转换为word 似乎是最简单和最酷的方法!谢谢!!
【解决方案2】:

这是一种存储回归输出的简单方法:

sink("myresult.doc", append=T)

只要指定,所有输出都会自动附加:append=T

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多