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

如何在Quarto文档的YAML头中向knitr传递dev.args列表参数

如何在Quarto文档的YAML头中向knitr传递dev.args列表参数

你碰到的问题其实是因为YAML语法和R的语法不兼容——不能直接在YAML头里写R的list()函数调用,得用YAML本身的映射格式来定义这个参数列表才行。

给你两种可行的写法:

方法一:纯YAML映射格式

这是最常规的写法,适合传递普通的键值对(数值、字符串等):

---
title: "My Document"
format: html
knitr:
  opts_chunk:
    dev.args:
      a: 1
      b: 2
      c: 3
---

knitr会自动把这个YAML结构转换成对应的R列表,直接供图形设备使用。

方法二:嵌入R表达式(适合含R特定对象的场景)

如果你的dev.args需要包含R特有的对象(比如函数调用、特殊常量),可以用!expr标记告诉Quarto这里要解析成R代码:

---
title: "My Document"
format: html
knitr:
  opts_chunk:
    dev.args: !expr list(a = 1, b = sqrt(4), c = as.factor("category"))
---

验证参数是否生效

你可以在文档里加个代码块,确认参数是否正确传递:

```{r}
# 查看当前dev.args的设置
knitr::opts_chunk$get("dev.args")
运行这个代码块后,就能看到你设置的参数列表了。

备注:内容来源于stack exchange,提问作者António Duarte
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 11:59:31