r - setwd() 和 getwd() 的问题
问题描述
我正在将 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 没有更改您的工作目录是不正确的,它只是为了脚本中的有限位置而这样做。一旦该块完成运行,R 将带您回到保存 .Rmd 文档的工作目录。
不幸的是,您没有指定为什么需要更改工作目录,所以我假设您需要从特定目录读取某些内容,或者编写一些内容。我相信你可能有三种选择:
- 您可以将需要访问的文档移动到与脚本相同的工作目录。这在大多数情况下都不是最优的,尤其是在您有很多文档的情况下。
- 通过在阅读函数中指定整个路径来阅读您需要阅读的任何内容
- 您可能希望通过在初始设置块中使用 root.dir 参数来指定根目录。这将作为:
knitr::opts_chunk$set(root.dir = 'C:/Users/Utilisateur/Documents/Etudes')
不幸的是,如果文档不在您设置为根目录的文件夹中,您仍然需要在每次需要读取文档时指定路径,但至少通过以相对术语指定路径更容易做到这一点。
一般来说,我的建议是以一种更容易访问的方式组织项目文档。
推荐阅读
- excel - 如何修复编译错误:从 Outlook 使用 Excel VBA 时未定义用户定义的类型?
- c# - 如何修复这个sql查询
- javascript - 如何使用 jquery 关注具有值的输入文本?
- python - 如何根据键的长度对具有相同值的字典的键进行排序?
- react-native - RNTester:找不到 React Native 文件
- python - pandas groupby as list 使用 agg 和 apply 函数返回空
- c - 虽然将我的 INT0 初始化为数字输入,但它仍然发出 2.8V 的电压,这使得 Button 并没有真正做出改变
- blogger - 如何避免创建博主账号错误?
- vue.js - 为什么在 vue data() 中很难使用 vue-i18n(为什么它不是响应式的)
- javascript - 确定 pr 从对象中消除空键:用于多种过滤目的的值