如何从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
相关产品推荐
相关产品推荐

