使用knitr::opts_knit设置R Markdown工作目录失效求助
R Markdown设置工作目录不生效的原因及解决方向
以下是可能导致knitr::opts_knit$set(root.dir)不生效的几个常见原因:
getwd()调用时机不对:在setup代码块内直接执行getwd(),此时knitr的root.dir配置还未真正应用。该设置是在后续代码块执行时才会生效,setup块里的getwd()读取的仍是初始工作目录。- RStudio项目设置覆盖:如果你的R Markdown属于某个RStudio项目(.Rproj),项目自带的工作目录设置优先级高于knitr的root.dir配置。可通过RStudio右上角项目名→「项目选项」→「常规」查看并调整项目工作目录。
- 目标路径权限不足:目标目录
/Users/chantal/Documents/PhD/Projects/可能没有读写权限,导致knitr无法切换目录。可执行file.access(normalizePath('/Users/chantal/Documents/PhD/Projects/'), 2)验证,返回0表示有权限,-1则代表权限不足。 - knitr版本存在bug:部分旧版本knitr存在root.dir设置的兼容性问题,尝试更新至最新版本:
install.packages("knitr")。 - setup代码块标签有误:确保setup代码块的标签为
{r setup, include=FALSE},缺失include=FALSE或标签格式错误,可能导致配置不被knitr正确识别。
验证方法:在setup代码块之后新增一个独立代码块调用getwd(),此时就能看到是否成功切换到目标目录:
getwd()
内容的提问来源于stack exchange,提问作者SilvaC
相关产品推荐
相关产品推荐

