在两列布局的 r-markdown 文档中插入优雅的 table
Insert elegant table inside a two-column layout r-markdown document
我正在编写 R Markdown 文档,可以从 Shiny App 下载 pdf。我用一个布局来构建我的 1 页文档,该布局在开头显示两列,然后再显示一列直到结束。
主要问题是,在两列之一中,我无法插入生成的 table,例如,通过 knitr 包的 kable()
函数,因为我收到以下错误:
包长table错误:长table不在1列模式
您可以在下面找到一些可重现的代码:
---
output: pdf_document
header-includes:
- \usepackage{multicol}
- \newcommand{\btwocol}{\begin{multicols}{2}}
- \newcommand{\etwocol}{\end{multicols}}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, cache = T)
library(ggplot2)
library(knitr)
```
\btwocol
#### Column one
```{r}
ggplot(mtcars,
aes(x = mpg,
y = cyl)) +
geom_point()
```
\columnbreak
#### Column two
```{r}
kable(mtcars[1:10, 1:2], format = "markdown")
```
\etwocol
请注意,如果删除 kable()
函数,脚本可以编译,但 table 是标准的 "R" 格式。
谢谢!
我通过使用 grid
、gridExtra
和 gtable
包的功能找到了解决方案。我直接在 R Markdown 文件的一个块中创建并自定义了 table 及其标题,并使用 grid.draw()
函数创建了 table 的图形 object 可以现在被插入到 two-columns 布局中。
非常简单的解决方案:使用 kableExtra
库 kbl(df, longtable=F)
生成非 longtable
格式的 table。
我正在编写 R Markdown 文档,可以从 Shiny App 下载 pdf。我用一个布局来构建我的 1 页文档,该布局在开头显示两列,然后再显示一列直到结束。
主要问题是,在两列之一中,我无法插入生成的 table,例如,通过 knitr 包的 kable()
函数,因为我收到以下错误:
包长table错误:长table不在1列模式
您可以在下面找到一些可重现的代码:
---
output: pdf_document
header-includes:
- \usepackage{multicol}
- \newcommand{\btwocol}{\begin{multicols}{2}}
- \newcommand{\etwocol}{\end{multicols}}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, cache = T)
library(ggplot2)
library(knitr)
```
\btwocol
#### Column one
```{r}
ggplot(mtcars,
aes(x = mpg,
y = cyl)) +
geom_point()
```
\columnbreak
#### Column two
```{r}
kable(mtcars[1:10, 1:2], format = "markdown")
```
\etwocol
请注意,如果删除 kable()
函数,脚本可以编译,但 table 是标准的 "R" 格式。
谢谢!
我通过使用 grid
、gridExtra
和 gtable
包的功能找到了解决方案。我直接在 R Markdown 文件的一个块中创建并自定义了 table 及其标题,并使用 grid.draw()
函数创建了 table 的图形 object 可以现在被插入到 two-columns 布局中。
非常简单的解决方案:使用 kableExtra
库 kbl(df, longtable=F)
生成非 longtable
格式的 table。