【问题标题】:Trouble with setwd() and getwd()setwd() 和 getwd() 的问题
【发布时间】:2021-08-14 10:00:39
【问题描述】:

我将 Rmarkdown 用于项目。昨天我更改我的工作目录没有问题,但是今天,每当我尝试将一个目录作为我的工作区时,它都没有,就好像它固定在同一个目录上一样。 这是控制台以获取更多详细信息

setwd(choose.dir()): 工作目录更改为笔记本块内的 C:/Users/Utilisateur/Documents/Etudes/Data/Covid-related/csse_covid_19_daily_reports。当块完成运行时,工作目录将被重置。使用设置块中的 knitr root.dir 选项更改笔记本块的工作目录。

getwd() [1] "C:/Users/Utilisateur/Documents/Etudes/ADES/DM 2"

【问题讨论】:

  • 在块中尝试:{r setup} knitr::opts_knit$set(root.dir = 'C:/Users/Utilisateur/Documents/Etudes/ADES/DM 2') 并告诉我。

标签: r r-markdown


【解决方案1】:

警告消息的意思是可以临时更改块内的工作目录,但这不会影响后续块。换句话说,说 R 没有更改您的工作目录是不正确的,它只是为了脚本中的有限位置而这样做。一旦该块完成运行,R 将带您回到保存 .Rmd 文档的工作目录。

不幸的是,您没有指定为什么需要更改工作目录,因此我假设您需要从特定目录读取某些内容或编写某些内容。我相信你可能有三种选择:

  1. 您可以将需要访问的文档移动到与您的脚本相同的工作目录中。这在大多数情况下都不是最佳选择,尤其是在您有很多文档的情况下。
  2. 通过在读取函数中指定整个路径来读取您需要读取的任何内容
  3. 您可能希望通过在初始设置块中使用 root.dir 参数来指定根目录。这将作为:
    knitr::opts_chunk$set(root.dir = 'C:/Users/Utilisateur/Documents/Etudes')

不幸的是,如果文档不在您设置为根目录的文件夹中,您仍然需要在每次需要读取文档时指定路径,但至少通过以相对术语指定路径更容易做到这一点。

一般来说,我的建议是让项目的文档以一种更易于访问的方式组织起来。

【讨论】:

    猜你喜欢
    • 2017-05-08
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    • 2015-04-25
    • 2023-04-06
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多