3

我正在使用 RStudio IDE (v 0.99.323)rmarkdown并尝试通过knitrusing生成模型表htmlreg来生成 MSWord 输出。怀疑我错过了一些简单的事情。

下面附加的 rmarkdown 块创建了一个单独的单词文件 'mytable.doc' 和一个漂亮的表格。但是,当我在 RStudio IDE 中单击“Knit Word”时,htmlreg(m) 行会在 MSWord 文档中生成 html 表格代码。我究竟做错了什么?

非常感谢!——戴尔

```{r, results='asis'}
library(MASS)
library(texreg)
data(menarche)
m <- glm(cbind(Menarche, Total-Menarche) ~ Age, family=binomial(logit), data=menarche)

htmlreg(m, file = "mytable.doc", caption="Age at Menarche", inline.css = TRUE, doctype = TRUE, html.tag = TRUE,                                               head.tag = TRUE, body.tag = TRUE, ci.force=TRUE, ci.test=NULL,bold=TRUE)

htmlreg(m)
```
4

4 回答 4

2

您能试试最新的 texreg 版本 1.34.2(请参阅此处帖子中的 .tar.gz 文件)吗?

根据 RStudio 开发人员的说法,问题在于他们切换到了更新版本的 Pandoc,它不再适用于缩进的 HTML 代码。更准确地说,它将以四个空格缩进的文本解释为代码块,就像在 Markdown 表示法中一样。有关他们的问题描述,请参见此处

所以在新texreg版本中,函数中调用indentation = ""了一个新参数htmlreg。它默认关闭缩进。使用indentation = " "恢复以前的行为。

编辑1:还请确保使用参数center = FALSEstar.symbol = "\\*"在左侧对齐并正确显示重要星。星号需要转义,因为它们被解释为 Markdown 语法的一部分:

```{r, results = 'asis'}
htmlreg(m, center = FALSE, star.symbol = "\\*")
```{r}

对于 PDF 笔记本(内部使用 LaTeX),请使用texreg

```{r, results = 'asis'}
texreg(m, float.pos = "h")
```{r}

编辑 2:还阅读 的帮助页面htmlreg,尤其htmlreg是描述参数的部分。它们包含一些关于如何使文档尽可能与 Markdown 兼容的有用信息,RStudio、Pandoc 和 knitr 使用它来创建 HTML 文档。特别是,当您不打算创建完整的 HTML 文档时,请使用 arguments inline.css = TRUEdoctype = FALSEhtml.tag = FALSEhead.tag = FALSE和。body.tag = FALSE

关于MS Word:您在问题下方的评论中提到您想要创建 HTML 或 Word 文档。该htmlreg函数旨在创建 HTML 文件,而不是 Word 文件(正如函数名称所暗示的那样)。但是,可以在 MS Word 中加载这些 HTML 文件,因为 Word 能够解释 HTML 代码。但是,knitr 创建二进制 Word 文档,并且据我所知,直接在这些二进制 Word 文档中嵌入 HTML 代码是不可能的(但我可能错了,因为我不知道 knitr 如何在内部创建 Word 文件)。但是,您可以尝试创建 HTML 笔记本,将它们保存到磁盘,然后在 MS Word 中打开它们。

于 2015-03-13T18:01:05.270 回答
2

在你的块中尝试这个,仍然使用result='asis'

library(pander)
pander(m)

帽子提示http://www.r-statistics.com/2013/03/write-ms-word-document-using-r-with-as-little-overhead-as-possible/

他们还提出了一种澄清代码块的好方法,这样您就可以调用print(m)并且markdown中的输出将从pander.

于 2015-03-13T15:08:12.723 回答
0

包作者已将 texreg 更新为默认关闭缩进。

请参阅: http ://rmarkdown.rstudio.com/authoring_migrating_from_v1.html#preserving-generated-html 通过以下方式更新软件包后: install.packages("texreg", repos = " http://R-Forge.R-project。组织")

当我在 RStudio 中“编织 HTML”时,下面放置在 rmarkdown (.Rmd) 文档中的块现在会生成一个漂亮的 html 表格。但是,“Knit Word”仍然没有产生预期的输出。

```{r,结果='asis'}

图书馆(texreg)

htmlreg(m, caption="初潮年龄", caption.above=TRUE, ci.force=TRUE, ci.test=NULL,bold=TRUE)

```

于 2015-03-13T19:37:35.017 回答
0

这是一个pandoc降价问题,或者htmlreg没有创建正确的缩进。由于神秘,我不完全理解这是错误还是功能:

http://rmarkdown.rstudio.com/authoring_pandoc_markdown.html#raw-html

尝试一个简单的.md(非.rmd)文件,如下所示:

<h1>Works</h1>

<table border="8">
  <tr>
  <td>111</td>
  <td>222</td>
  <td>444</td>
  </tr>
</table>

<h1>Not what you want</h1>

<table border="8">
  <tr>
    <td>111</td>
    <td>222</td>
    <td>444</td>
  </tr>
</table>

<h1>Works too (not in screenshot)</h1>

<table border="8">
  <tr><td>111</td><td>222</td><td>444</td></tr>
</table>

原始html的输出

于 2015-03-13T15:55:48.850 回答