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

Rmarkdown设置工作目录报错:object 'params' not found

解决Rmarkdown中params对象找不到的问题

你遇到的错误是因为**setup代码块执行时,knitr还未加载params对象**,直接调用params$working_dir会导致找不到对象的报错。下面提供两种可行的解决办法:

方法1:通过rmarkdown::metadata访问YAML参数

直接调用rmarkdown::metadata来获取YAML头部里的params参数,无需依赖knitr加载params的时机:

---
title: "Example"
author: "Name"
date: "`r Sys.Date()`"
params:
  working_dir: "/my/working/dir"
output: html_document
---
```{r setup, include = FALSE}
# 用rmarkdown::metadata获取参数设置工作目录
knitr::opts_knit$set(root.dir = rmarkdown::metadata$params$working_dir)
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
# 验证工作目录
getwd()
sessionInfo()
## 方法2:给`setup`块添加`eval.after`参数
通过设置`eval.after = "params"`,让knitr先加载`params`对象,再执行`setup`块的代码:

```yaml
---
title: "Example"
author: "Name"
date: "`r Sys.Date()`"
params:
  working_dir: "/my/working/dir"
output: html_document
---
```{r setup, include = FALSE, eval.after = "params"}
# 现在可以正常调用params对象
knitr::opts_knit$set(root.dir = params$working_dir)
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
getwd()
sessionInfo()
两种方法都能解决`params`找不到的问题,可根据习惯选择使用。

内容的提问来源于stack exchange,提问作者Lucy
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:01:00