以下代码在彼此之上生成2个表。如何设置它们使它们并排排列,例如3连续?
---
title: "sample"
output: pdf_document
---
```{r global_options, R.options=knitr::opts_chunk$set(warning=FALSE, message=FALSE)}
```
```{r sample, echo=FALSE, results='asis'}
library(knitr)
t1 <- head(mtcars)[1:3]
t2 <- head(mtcars)[4:6]
print(kable(t1))
print(kable(t2))
```
答案 0 :(得分:21)
只需在列表中放入两个数据框,例如
DriverManager.getConnection(URL+";shutdown=true");
请注意,这需要 knitr &gt; = 1.13。
答案 1 :(得分:15)
我使用了这个Align two data.frames next to each other with knitr?,其中显示了如何在html
和https://tex.stackexchange.com/questions/2832/how-can-i-have-two-tables-side-by-side中执行此操作,以便将2个Latex表对齐。您似乎无法自由调整表格的行,因为您可以使用xtable
(有人对此了解更多吗?)。使用format = Latex
,每行后都会得到一条水平线。但文档显示了其他格式的两个示例。一个使用longtable
包(附加参数:longtable = TRUE
),另一个使用booktabs
包(booktabs = TRUE
)。
---
title: "sample"
output: pdf_document
header-includes:
- \usepackage{booktabs}
---
```{r global_options, R.options=knitr::opts_chunk$set(warning=FALSE, message=FALSE)}
```
```{r sample, echo=FALSE, results='asis'}
library(knitr)
library(xtable)
t1 <- kable(head(mtcars)[1:3], format = "latex", booktabs = TRUE)
t2 <- kable(head(mtcars)[4:6], format = "latex", booktabs = TRUE)
cat(c("\\begin{table}[!htb]
\\begin{minipage}{.5\\linewidth}
\\caption{}
\\centering",
t1,
"\\end{minipage}%
\\begin{minipage}{.5\\linewidth}
\\centering
\\caption{}",
t2,
"\\end{minipage}
\\end{table}"
))
```
答案 2 :(得分:10)
这里是 html文档
的解决方案(因为这个问题被问得很广泛,而不是具体是指LaTeX)。
需要knitr
和kableExtra
---
title: "Side by side"
output: html_document
---
```{r sample, echo=FALSE}
library(knitr)
library(kableExtra)
t1 <- head(mtcars)[1:3]
t2 <- head(mtcars)[4:6]
```
## as list
```{r}
kable(list(t1, t2))
```
## with float
```{r, echo = FALSE}
kable(t1) %>%
kable_styling(full_width = FALSE, position = "float_left")
kable(t2) %>%
kable_styling(full_width = FALSE, position = "left")
```
有意使表t2获得position = "left"
。如果允许它浮动,则不会阻塞该段的其余部分,也不会弄乱文档中的以下几行。
结果: