R降价/合并:自定义输出目录

p8ekf7hl  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(128)

我是新的Stackoverflow -所以请原谅任何可能的陌生人在我的职位。
我有一个类似的问题Tom,张贴here
我想将Markdown创建的PDF文件保存在特定目录中。在几次尝试失败后(包括与GPT的一次令人沮丧的聊天),我按照帖子中提到的X1 E2 F1 X说明操作,但没有成功。
下面是我的YAML标题:

---
title: 'MyTitle'
subtitle: 'Analysis XYZ'
author: "Boris et al."
date: "2023-01-22"
knit: (function(input, encoding) {
  rmarkdown::render(input,
                    encoding = "UTF-8",
                    output_dir = "05-Reports")})
output: pdf_document
---

...这里是脚本主体中的一些代码片段:

knitr::opts_chunk$set(echo = FALSE, message = TRUE)
source("02-Scripts/03-LogMod-6-plot.R", local = knitr::knit_global())

{r model results} model6.res.table <- simple_kable <- knitr::kable(model6.res, format = "pipe") model6.res.table
下面是我收到的错误消息:
文件错误(文件名,“r”,编码= encoding):无法打开连接呼叫:...带有用户处理程序的eval_with_user_handlers -〉eval -〉eval -〉源代码-〉文件执行暂停
我认为问题一定与R无法找到指定的输出目录(05-Reports)有关,但我不知道原因,因为此输出目录在工作目录中:
getwd()[1]“/用户/我的用户/文档/研究XYZ/1-XYZ数据/6-R/研究XYZ-R-项目”
列表.文件()[1]“01-数据” “02-脚本” “03-输出” [4]“04-绘图” “05-报告” “研究XYZ-R-项目.Rproj”
也许重要的是要知道:此外,在R Markdown下的全局选项中,我设置了“Evaluate chunks in directory:““Project”,就像thread中提到的Julius Diel一样:
在RStudio中执行“knit HTML”时出现错误“无法打开连接” 在像这样设置R的全局选项之前,我遇到了其他一些关于scource()-命令的问题,这些scource()-命令来自于我的markdown-script,用来寻址包含analysis-commands的R脚本。现在scourcing工作正常,我在不指定输出目录(html和pdf格式)的情况下执行markdown脚本时得到了预期的结果。只是pdf文件不能保存在我想要的地方。 有人知道是什么导致了这个问题吗?

f87krz0w

f87krz0w1#

我不知道Evaluate chunks in directory: "Project"选项,以前我在安装程序块中使用了以下代码:

knitr::opts_knit$set(root.dir = rprojroot::find_rstudio_root_file())

但是,当在文档头中使用rmarkdown::render时,这个选项(以及RStudio中设置的选项)会被忽略。您需要设置knit_root_dir来定义根目录,您可以从根目录指定rmarkdown文档中使用的source中的相对路径:

knit: (function(input, encoding) {
  rmarkdown::render(input,
                    output_dir = "05-Reports",
                    knit_root_dir = rprojroot::find_rstudio_root_file())})

相关问题