引用手工制作的'使用bookdown包的表

时间:2016-04-19 15:54:28

标签: r knitr r-markdown bookdown

我正在尝试使用bookdown包引用表。在documentation中,作者仅显示了如何使用knitr::kable创建表格。

```{r table1}
knitr::kable(
  head(iris, 20), caption = 'Here is a nice table!',
  booktabs = TRUE
)
```

\@ref(tab:table1)就在这里。

使用knitr::kable效果很好。显示表格的标题,我可以参考表格。我想用经典的手工制作降价表做同样的事情,但显然下面的代码失败了。 如何获得与上述代码类似的结果?

```{r table2, echo=FALSE, results='asis'}
cat('| Sepal.Length| Sepal.Width| Petal.Length|
|------------:|-----------:|------------:|
|          5.1|         3.5|          1.4|
|          4.9|         3.0|          1.4|
|          4.7|         3.2|          1.3|
|          4.6|         3.1|          1.5|')
```

\@ref(tab:table2)就在这里。

This图片显示了此代码编织时的输出。

This

3 个答案:

答案 0 :(得分:9)

我确实在文档中提到过它,但也许还不够清楚。我说你需要(\#tab:...)形式的标签。例如,您可以使用\@ref(tab:foo)来引用此表。

Table: (\#tab:foo) Your table caption.

| Sepal.Length| Sepal.Width| Petal.Length|
|------------:|-----------:|------------:|
|          5.1|         3.5|          1.4|
|          4.9|         3.0|          1.4|
|          4.7|         3.2|          1.3|
|          4.6|         3.1|          1.5|

答案 1 :(得分:1)

我参加讨论有点晚了,但我只是想分享一个有效的MWE(基于先前的答案):

(c - b * c)

表@ref(tab:table2)显示...

答案 2 :(得分:0)

我通过以下方法解决了这个问题:

```{r table2 , echo=FALSE, results='asis'}
  cat(' Table: \\label{tab:table2}Example

  | Sepal.Length| Sepal.Width| Petal.Length|
  |------------:|-----------:|------------:|
  |          5.1|         3.5|          1.4|
  |          4.9|         3.0|          1.4|
  |          4.7|         3.2|          1.3|
  |          4.6|         3.1|          1.5|')

```

表\ ref {tab:table2}显示...