如何将多个 knitr::kable 或 stargazer 表并排放置?

How can I put multiple knitr::kable or stargazer tables next to each other?

尝试简单地制作单独的 table 安斯库姆四重奏集,以便它们和格式之间有一个很好的 space。我更喜欢一组 1x4 的 tables,但 2x2 就足够了。

对于任一维度的结果,knitr::kables 和 stargazer 解决方案似乎都无法处理多个非模型或非摘要对象:

anscombe.1 <- data.frame(X1 = anscombe[["x1"]], Y1 = anscombe[["y1"]], Set = "1")
anscombe.2 <- data.frame(X2 = anscombe[["x2"]], Y2 = anscombe[["y2"]], Set = "2")
anscombe.3 <- data.frame(X3 = anscombe[["x3"]], Y3 = anscombe[["y3"]], Set = "3")
anscombe.4 <- data.frame(X4 = anscombe[["x4"]], Y5 = anscombe[["y4"]], Set = "4")
# I usually call stargazer() with multiple model objects, so...
stargazer(anscombe.1, anscombe.2, anscombe.3, anscombe.4, summary = FALSE)

Error in if (.global.summary[i] == TRUE) { : missing value where TRUE/FALSE needed
Calls: ... withVisible -> eval -> eval -> stargazer -> .stargazer.wrap

但是,如果调用 stargazer(anscombe.1, summary = FALSE),我会得到所需的输出。同样,我可以调用 knitr::kable(anscombe) 并获取单个集合的 table,但不是全部四个集合:

knitr::kable(anscombe.1, anscombe.2, anscombe.3, anscombe.4)

Quitting from lines 9-36 (anscombe.Rmd) Error in round(x[, j], digits[j]) :
non-numeric argument to mathematical function Calls: ... withCallingHandlers -> withVisible -> eval -> eval ->

我如何将这四组放在一起 - 最好是一行四个 table,它们之间有一些 space - 这样我就可以排列它们的(相似的)汇总统计数据下面,可能对柱状摘要使用相同的技术?

将东西 side-by-side 放入 Markdown 中很难:它不是为此而设计的。所以你需要在文件中包含一些 LaTeX 标记。

例如,

---
title: "Side by Side"
date: "October 31, 2016"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```

## Side by Side

\begin{minipage}{0.3\textwidth}
```{r}
knitr::kable(diag(2), format = "latex")
```
\end{minipage}
\begin{minipage}{0.3\textwidth}
```{r}
knitr::kable(diag(3), format = "latex")
```
\end{minipage}
\begin{minipage}{0.3\textwidth}
```{r echo=FALSE}
knitr::kable(diag(4), format = "latex")
```
\end{minipage}

这会产生类似于

的输出