6 Quarto 书稿中的表格的处理
第 6 章将通过具体的示例展示浮动对象“表格”的标签与引用技巧.
6.1 表格示例1:由数据生成表格
代码
#| label: tbl-mtcars
#| tbl-cap: "mtcars数据的前5行."
library(knitr)
kable(head(mtcars[, 1:5], 10))
输出为
注释
表格的标签由R
代码块中的label: tbl-xxx
给出, 其中tbl
是关键字.
6.2 表格示例2: 由数据框构造表格
代码
#| label: tbl-tab3-2
#| tbl-cap: '遗传连接模型例子中观测到的频数 $y_i$ 和频率 $p(y_i|\pi)$,$i=1, \dots ,4$,197个动物.'
#| echo: FALSE
#| results: "asis"
<- data.frame(
tab.pis C = c("Frequency $y_i$", "Probability $p(y_i\\mid\\pi)$"),
V1 = c("125", "$\\frac{1}{2}+\\frac{\\pi}{4}$"),
V2 = c("18","$\\frac{1}{4}(1-\\pi)$"),
V3 = c("20","$\\frac{1}{4}(1-\\pi)$"),
V4 = c("34","$\\frac{1}{4}$")
)names(tab.pis) <- c("Category", "1", "2", "3", "4")
::kable(tab.pis, escape = FALSE) knitr
输出为
注释
表格中的题图通过tbl-cap:
由文本引用生成.
6.3 表格示例3: 由markdwon表格直接生成
INLA
可处理的分布/似然有60种, 6.3 仅列出了其中的一部分.
| **Value** | **Likelihood** |
|------------|----------------|
| `poisson` | Poisson |
| `binomial` | Binomial |
| `t` | Student's t |
| `gamma` | Gamma |
: `INLA`提供的一些似然. {#tbl-liks}
输出为
注释
- 表格中
%
用\\%
- 表格中latex命令用
\\
代替\
- 前二种方法中表格的标签由R代码块中的’label:’给出.
6.4 markdown子表的并置
::: {#tbl-panel layout-ncol="2"}
| Col1 | Col2 | Col3 |
|------|------|------|
| A | B | C |
| E | F | G |
| A | G | G |
: 第一个表格 {#tbl-first}
| Col1 | Col2 | Col3 |
|------|------|------|
| A | B | C |
| E | F | G |
| A | G | G |
: 第二个表格 {#tbl-second}
二个子表的并置
:::
输出为
6.5 数据子表的并置与堆叠
在R
的代码块选项中设置tbl-subcap: true
或tbl-subcap
加上子表的图例,并添加layout-ncol: 2
就可获得二个子表的并置.
#| label: tbl-tables
#| tbl-cap: "两个表格并置示例2"
#| tbl-subcap:
#| - "Cars数据"
#| - "Pressure数据"
#| layout-ncol: 2
library(knitr)
kable(head(cars))
kable(head(pressure))
输出为
类似地,通过选项layout-nrow: 2
就可将二个子图堆叠起来.
#| label: tbl-tables-by-row
#| tbl-cap: "两个表格堆叠示例"
#| tbl-subcap:
#| - "mtcars数据"
#| - "iris数据"
#| layout-nrow: 2
library(knitr)
kable(head(mtcars))
kable(head(iris))
输出为
6.6 表格引用
表格引用由代码块的标签(设为label
)引用实现, 并带前缀tbl-
, 由@tbl-label
实现. 例如
本章共出现二个表格并置的示例,即 表 @tbl-panel, 表 @tbl-tables 和 @tbl-second.
输出为: