2

我使用 pander R 包生成降价表,在某些列标题中有管道(例如: P > |t| )。由于列分隔符和“真实”管道之间的混淆,似乎(除非我错过了什么)pandoc 和 Rmarkdown 都没有正确处理它们。

考虑以下 Rmd 示例:

```{r  message = FALSE}
library(pander)
panderOptions("table.style" , "rmarkdown")
panderOptions("table.split.table" , Inf) # avoid to split the tables

data(iris)
mod <- lm(Sepal.Length ~ Species, data = iris)
```

```{r results='asis'}
pandoc.table(summary(mod)$coefficients[,-4])
```

```{r results='asis'}
pandoc.table(summary(mod)$coefficients)
```

pander 生成的最后一个表如下所示(注意最后一列名称中的管道):

|                  &nbsp; |  Estimate  |  Std. Error  |  t value  |  Pr(>|t|)  |
|------------------------:|:----------:|:------------:|:---------:|:----------:|
|         **(Intercept)** |   5.006    |    0.0728    |   68.76   | 1.134e-113 |
|   **Speciesversicolor** |    0.93    |    0.103     |   9.033   |  8.77e-16  |
|    **Speciesvirginica** |   1.582    |    0.103     |   15.37   | 2.215e-32  |

如果我将它编织成 html(如果我没记错的话,通过使用 Rmarkdown 生成 HTML 的 Rstudio 按钮),最后一个表格不会显示为表格,而是显示为 HTML 输出中的纯文本。
如果我使用由 knitr 生成的 md 并使用 pandoc 将其转换为 html,则输出是一个表,但最后一列名称变为“Pr(>”。

没有最后一列的第一个表正确显示。

4

1 回答 1

5

您可以使用反斜杠 ( ) 转义管道\|

于 2013-06-10T17:20:32.277 回答