2016-06-26 3 views
9

Следующий код создает две таблицы друг над другом. Как бы я установил его, чтобы они выровнялись бок о бок, например. 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

+0

http://tex.stackexchange.com/questions/2832/how-can-i-have-two-tables-side-by-side – RoyalTS

+0

Я видел это, исследуя, как это сделать. Я не понимаю синтаксис; Высший проголосовавший ответ говорит: «Просто поставьте две табличные среды рядом друг с другом. Добавьте расстояние по желанию». затем показывает некоторый код с синтаксисом, подобным этому: \ begin {tabular} {ccc}. Я не знаю, как я мог применить это к приведенному выше примеру, используя таблицы mtcars? –

ответ

16

Просто поместите два кадра данных в списке, например,

t1 <- head(mtcars)[1:3] 
t2 <- head(mtcars)[4:6] 
knitr::kable(list(t1, t2)) 

Примечание для этого требуется knitr> = 1.13.

+0

Можно ли использовать индивидуальные линии как с 'xtable'? – Alex

+0

Нет, но я думаю, что 'kable (..., booktabs = TRUE)' и добавление 'tables: yes' в YAML (как опция _top-level_) должно дать вам то, что вы хотите. –

+0

Это замечательно! Большое спасибо –

10

Я использовал этот 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 таблицы латексной рядом друг с другом. Кажется, что вы не можете свободно регулировать линии стола, как вы можете это сделать с помощью 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

+0

Hi @Alex спасибо за ответ. Я не понимаю синтаксис, например. начать {таблица} [! HTB]. Что это? Это R? –

+2

Нет, это латекс. Если вы пишете rmarkdown, и вы создаете PDF-файл, он не работает напрямую. Сначала он переводится в латекс. Самое приятное, что вы также можете напрямую использовать Latex и использовать его полную мощность. – Alex

+0

спасибо за информацию, я рассмотрю латекс –

Смежные вопросы