You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从bookdown中提取图号变量以命名Excel数据工作表?

问题解答

bookdown 基于 knitr 实现图表编号,当前代码块对应的图号可通过 knitr::opts_current$get("fig.num") 获取,该变量能在 R 代码中直接访问。

关键注意事项

  • 必须给代码块设置 fig.cap 参数(即添加图表标题),bookdown 才会生成连续的图号;若未设置,fig.num 可能返回空值,无法获取有效编号。

修改后的示例代码

library(data.table)  ## data.table
library(ggplot2)     ## plotting
library(openxlsx)    ## export to excel named worksheet

# 获取当前代码块的图号
current_fig_num <- knitr::opts_current$get("fig.num")

kPlot <- as.data.table(iris)
kPlot <- kPlot[,.(Sepal.Length,Sepal.Width)]

ggplot(kPlot, aes(x=Sepal.Length,y=Sepal.Width))+
  geom_point()

# 用图号命名Excel工作表并导出
write.xlsx(
  x = setNames(list(kPlot), current_fig_num),
  file = "test.xlsx"
)

在bookdown文档中,对应代码块需添加fig.cap参数以触发图号生成,示例如下:

```{r, fig.cap="鸢尾花萼片长度与宽度的散点图"}
# 上述代码内容
内容的提问来源于stack exchange,提问作者kbarreto
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 08:42:14