【问题标题】:How to set current file location as work directory in R markdown?如何在 R markdown 中将当前文件位置设置为工作目录?
【发布时间】:2017-11-16 05:02:24
【问题描述】:

我有mydata.RDATA要在R中使用,然后我需要load(),这意味着我需要先setwd()当前目录。我已经知道how to do it in R

当我在 R markdown 中这样做时:

{r echo=FALSE} dirname(parent.frame(2)$ofile) script.dir <- dirname(sys.frame(1)$ofile) setwd(script.dir)

我得到如下错误:

Error in dirname(parent.frame(2)$ofile) : a character vector argument expected calls :&lt;Anonymous&gt;...

【问题讨论】:

  • 我真的推荐使用 RStudio 项目和相对路径。我还在一些遗留代码中使用ofile 方法,但它非常不可靠,具体取决于文件的来源、编织等。
  • 我用的是Rstudio,但从来没有用过project。我有500+个project,那么我只能在每个文件夹中存储.Rdata文件。
  • 是的,你只需要打开项目文件,然后自动设置工作目录,并打开你上次在这个项目中打开的文件。

标签: r r-markdown


【解决方案1】:

如果您的 .Rmd 文件位于子文件夹中,您需要指定 knitr 的根目录,甚至如果您已使用 setwd() 甚至是 RSudio 项目指定了工作目录。

幸运的是,这就像在您的 .Rmd 文件的开头添加以下块一样简单,就在 YAML 之后:

{r "setup", include=FALSE} require("knitr") opts_knit$set(root.dir = "~/path/to/project")

~/ 是您在 Linux(也可能是 Mac)上的 HOME 目录。如果您使用的是 Windows,则必须对此进行调整。

【讨论】:

  • 我只是不想输入'/path/to/project',因为移动.rmd文件时不灵活。
  • 为什么在块头中放什么很重要?如果被称为“设置”,knitr 会以不同的方式对待一个块吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 2022-06-21
  • 1970-01-01
  • 2015-04-17
  • 1970-01-01
相关资源
最近更新 更多