并排对齐多个表

时间:2016-06-26 08:37:24

标签: r latex knitr r-markdown

以下代码在彼此之上生成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))
```

输出如下: enter image description here

3 个答案:

答案 0 :(得分:21)

只需在列表中放入两个数据框,例如

DriverManager.getConnection(URL+";shutdown=true");

请注意,这需要 knitr &gt; = 1.13。

答案 1 :(得分:15)

我使用了这个Align two data.frames next to each other with knitr?,其中显示了如何在htmlhttps://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}"
))  
```

enter image description here

答案 2 :(得分:10)

这里是 html文档

的解决方案

(因为这个问题被问得很广泛,而不是具体是指LaTeX)。

需要knitrkableExtra

---
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"。如果允许它浮动,则不会阻塞该段的其余部分,也不会弄乱文档中的以下几行。

结果

enter image description here