Rmarkdown输出到word创建一个表而不是两个

时间:2017-09-01 08:43:17

标签: r ms-word rstudio knitr

对单词的Rmarkdown输出会创建一个表而不是两个

当我在Rstudio中使用Rmarkdown编写Word文档时,下面的代码应该创建两个独立的表,而是创建一个组合表。

代码需要创建一个包含两个表的word文档:

---
title: "Untitled"
output: word_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```

## R Markdown


```{r}
knitr::kable(head(iris))
```


```{r}
knitr::kable(head(iris))
```

但它只会创建一个:

enter image description here

但是,如果我设置echo = TRUE,我会得到预期的两个表。当我将同一文档输出到HTML时,它还会创建预期的两个表。 通过单击Rstudio中的编织按钮创建表。

问题是:如何获得两个表而不是一个?

澄清一下:问题不在于创建了两个表,它们之间的空间很小。问题是创建了一个表。在这个问题附带的图片中,它确实看起来是两个表(因为有两个标题),但它实际上是一个表。但Axeman的答案解决了这个问题。我仍然相信这是一个错误,因为在早期版本的knitr中,没有必要在表之间指定<br><br>,以确保它们不会合并为一个。

我提交了一份错误报告,但没有人见过它: https://support.rstudio.com/hc/en-us/community/posts/115008683128-Bug-Two-tables-produced-by-knitr-kable-are-rendered-as-one-in-word-output

Rstudio version 1.0.153

> sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=Danish_Denmark.1252  LC_CTYPE=Danish_Denmark.1252    LC_MONETARY=Danish_Denmark.1252 LC_NUMERIC=C                    LC_TIME=Danish_Denmark.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] compiler_3.4.1  backports_1.1.0 magrittr_1.5    rprojroot_1.2   htmltools_0.3.6 tools_3.4.1     yaml_2.1.14     Rcpp_0.12.12    rmarkdown_1.6   stringi_1.1.5  
[11] highr_0.6       knitr_1.16      digest_0.6.12   stringr_1.2.0   evaluate_0.10.1

在家里我的机器上我没有这个问题。因此,相同的代码生成独立的表,而无需在块之间放置<br><br>。在这台家用机器上,sessioninfo是这样的:

R version 3.4.1 (2017-06-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] compiler_3.4.1  backports_1.1.0 magrittr_1.5    rprojroot_1.2   htmltools_0.3.6 tools_3.4.1     yaml_2.1.14     Rcpp_0.12.12   
 [9] stringi_1.1.5   rmarkdown_1.6   knitr_1.17      stringr_1.2.0   digest_0.6.12   evaluate_0.10.1

1 个答案:

答案 0 :(得分:2)

在它们之间放置一条HTML注释,您可以更清楚地区分表格。

E.g。

---
title: "Untitled"
output: word_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```

## R Markdown

```{r}
knitr::kable(head(iris))
```

<!-- -->

```{r}
knitr::kable(head(iris))
```

如果此操作失败,您可以改为换行,将<!-- -->替换为<br><br>