有没有办法交叉引用 fixest::etable()?

Is there any way to cross-reference fixest::etable()?

问题

有没有什么方法可以交叉引用fixest::etable()? 我知道 etable 是一个简单的方法,但它实际上非常有用。 如果有办法做到这一点,那将是非常有帮助的。

环境是Windows10,使用RStudio中的R 4.1.2和运行bookdown::render_book()。 以下是文件结构及各文件内容

源代码

index.Rmd

---
title: "test"
author: "null"
output: pdf_document
fontfamily: lmodern
documentclass: bxjsarticle
classoption: |
  xelatex,
  ja=standard,
  a4
link-citations: yes
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(
    echo = FALSE,
    warning = FALSE,
    message = FALSE,
    dev = "cairo_pdf",
    results = "asis"
)
```

```{r model}
library(fixest)
model <- feols(dist ~ speed, cars)
```

```{r etable}
etable(model, title = "etable", tex = TRUE)
```

\@ref(tab:etable)

_bookdown.yml

delete_merged_file: true

_output.yml

bookdown::pdf_document2:
    latex_engine: xelatex
    dev: cairo_pdf
    fig_caption: yes
    number_sections: true

结果

如图所示,交叉引用为“??”。 现在,我必须在不使用交叉引用的情况下手动给它们编号。

更新:我不知道为什么我错过了 label 论点。无论如何,@laurent-bergé 更正确。

注意:此答案翻译自my original post(日文)。

我猜 fixest 包没有 Rmd 上交叉引用的选项。虽然这可能有点笨拙,但我发现您可以在 title 参数中插入 LaTeX 命令,如下所示。

```{r etable}
etable(model, title = "\label{tab:etable}etable", tex = TRUE)
```

附录:一般来说,bookdown 不支持通过块标签引用 tables,仅支持绘图。其他包(例如officedown)可以通过块标签引用table。

您也可以使用 stargazer 包轻松地列出回归分析的结果,但您可能也需要一些技巧(请参阅 https://github.com/rstudio/bookdown/issues/175)。

etable 有一个 label 参数:

library(fixest)
model = feols(dist ~ speed, cars)
etable(model, label = "tab:etable", tex = TRUE)

#> \begin{table}[htbp]
#>    \caption{\label{tab:etable} no title}
#>    \centering
#>    \begin{tabular}{lc}
#>       \tabularnewline \midrule \midrule
#>       Dependent Variable: & dist\  
#>       Model:              & (1)\  
#>       \midrule
#>       \emph{Variables}\
#>       (Intercept)         & -17.58$^{**}$\   
#>                           & (6.758)\   
#>       speed               & 3.932$^{***}$\   
#>                           & (0.4155)\   
#>       \midrule
#>       \emph{Fit statistics}\
#>       Observations        & 50\  
#>       R$^2$               & 0.65108\  
#>       Adjusted R$^2$      & 0.64381\  
#>       \midrule \midrule
#>       \multicolumn{2}{l}{\emph{IID standard-errors in parentheses}}\
#>       \multicolumn{2}{l}{\emph{Signif. Codes: ***: 0.01, **: 0.05, *: 0.1}}\
#>    \end{tabular}
#> \end{table}