我正在try 使用RMarkdown格式化在R中进行的t个测试的结果.我想在表格中设置结果的格式.parameters::print_md()可以很好地做到这一点,但我需要使用内联引用来引用该表,例如\@ref(tab:ttest).我相信我需要使用bookdown::pdf_document2来做到这一点.我使用的是MacOS Ventura 13.4.1下的R 4.3.1到RStudio版本2023.06.0+421,并编译成tinytex_0.46的PDF.

当我try 这样做时,该引用未被识别.请参见下面的.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).

```{r 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).

输出显示为

enter image description here

谢谢你能提供的任何帮助.

推荐答案

S的交叉引用能力依赖于knitr::kable()中的大约neat behind-the-scenes features个.它会自动将引用标签插入到表格环境(Html或LaTeX或Word):

kable()函数将自动为表环境生成一个标签,该标签是前缀tab:加上块标签.例如,带有标签foo的代码块的表标签将是tab:foo,我们仍然可以使用语法\@ref(label)来引用该表.

parameters::print_md()不像kable()那样做标签注入,所以它不会立即起作用.

但是,the end of the documentation page说明了如何插入您自己的可交叉引用标签和标题.您可以在表格标题中插入您自己的标签:

为了能够交叉引用Markdown表,它必须具有表单Table: (\#label) Caption here的标签标题,其中label必须具有前缀tab:,例如tab:simple-table.

您可以使用parameters::print_md()来做到这一点:

parameters::model_parameters(t_out) |> 
  parameters::print_md(caption = "Table: (\\#tab:ttest) Caption here")

…因此,您的完整文档将如下所示:

I need to refer to Table \@ref(tab:ttest).

```{r whatever-chunk-name-you-want}
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(caption = "Table: (\\#tab:ttest) Caption here")
```

作为替代方案,您可以使用Quarto,它不需要定制的手动标签,并且可以与任何表格生成函数一起使用:

I need to refer to @tbl-ttest.

```{r tbl-ttest}
#| tbl-cap: A t-test.
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()
```

R相关问答推荐

当y大于阈值和值范围时,在时间序列中突出显示区域

R中的Fasttext langue_identification返回太多参数-如何与文本匹配?

使用lares::corr_var函数在for循环中分配变量的问题

通过R访问MoveApps API

使用case_when和Mutate搜索多个列以寻找条件

在数据表中呈现数学符号

如何在R中添加截止点到ROC曲线图?

如何在emmeans中计算连续变量的对比度

lightgbm发动机在tidymmodels中的L1正则化""

如何改变x轴比例的列在面

R函数‘paste`正在颠倒其参数的顺序

在df中保留原始变量和新变量

根据文本字符串中的值粘贴新列

SHINY:使用JS函数应用的CSS样式显示HTML表格

过滤名称以特定字符串开头的文件

TreeNode打印 twig 并为其上色

仅在R中的数据集开始和结束时删除所有 Select 列的具有NA的行

如何将这个小列表转换为数据帧?

如何使用grepl()在数据帧列表中 Select 特定字符串?

如何使投篮在R中保持一致