RMarkdown中引用parameters::print_md生成的表格失败求助
问题:RMarkdown中
parameters::print_md()生成的表格无法通过bookdown引用 我在RMarkdown中格式化R的t检验结果时,使用parameters::print_md()可以很好地将结果转为表格,但需要通过\@ref(tab:ttest)这类行内引用方式引用表格,因此采用bookdown::pdf_document2输出PDF。环境为R 4.3.1、macOS Ventura 13.4.1、RStudio 2023.06.0+421、tinytex_0.46。但生成的PDF中引用未被识别,最小复现的.Rmd文件如下:
--- title: "Test {parameters}" author: "Emily Dickinson" date: "2023-08-18" output: bookdown::pdf_document2: toc: false ---
```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)
I need to refer to Table @ref(tab:ttest).
library(parameters) data(mtcars) # Conduct t-test: t_out <- t.test(mpg ~ am, data = mtcars) # Extract parameters and print for Markdown: parameters::model_parameters(t_out) |> parameters::print_md()
I still need to refer to Table @ref(tab:ttest).
## 解决方案 ### 核心原因 `parameters::print_md()`默认输出的Markdown表格没有添加bookdown识别表格引用所需的**标签属性**(即`{#tab:ttest}`),导致bookdown无法建立引用关联。 ### 方法1:给`print_md()`指定`caption`和`label`参数 直接在`print_md()`中添加`caption`(表格标题)和`label`(引用标签)参数,让表格自动带上bookdown需要的标识: ```r ```{r ttest} library(parameters) data(mtcars) t_out <- t.test(mpg ~ am, data = mtcars) parameters::model_parameters(t_out) |> parameters::print_md(caption = "不同变速箱类型的油耗t检验结果", label = "tab:ttest")
### 方法2:用`knitr::kable()`手动生成带标签的表格 如果方法1不生效,可以将`model_parameters()`的结果转为数据框,再用`knitr::kable()`生成符合bookdown要求的表格: ```r ```{r ttest} library(parameters) library(knitr) data(mtcars) t_out <- t.test(mpg ~ am, data = mtcars) params_df <- as.data.frame(parameters::model_parameters(t_out)) knitr::kable(params_df, caption = "不同变速箱类型的油耗t检验结果", label = "ttest")
修改后重新编译PDF,`\@ref(tab:ttest)`就能正确识别并显示对应的表格编号。 内容的提问来源于stack exchange,提问作者RTM
相关产品推荐
相关产品推荐

