r - 错误:“项目“path/to/file.rda”没有激活的脚本,因此无法激活”与 renv
问题描述
我正在尝试renv
在 R 中使用我的项目管道。
我的文件夹结构是
.
|-- data
| |-- file1.rda
| |-- file2.rda
| |-- folder1
| |-- folder2
`-- repository
|-- rep1
| |-- script1.R
| |-- script2.R
| |-- config.json
`-- rep2
/rep1
是我的分析管道的文件夹,也是我从中运行脚本的文件夹。我正在跟踪我正在使用的包renv
,我在 中初始化/rep1
,但我还没有创建快照。
/data
包含file*.rda
,它们由生产script1.R
并具有相当大的尺寸。我无法在我的/rep1
文件夹中移动它们中的任何一个。为了将它们与 一起使用script2.R
,我将它们与
library(renv)
library(jsonlite)
config <- read_json("config.json")
load(file.path(config$data_folder, "file1.rda")
他们应该加载存储在其中的对象。
但是,每当我运行它时,我都会收到以下错误:
Error: project "~/data/file1.rda" has no activate script and so cannot be activated
Traceback (most recent calls last):
4: load(file.path(config$data_folder, "file1.rda"))
3: renv_load_switch(project)
2: stopf(fmt, renv_path_pretty(project))
1: stop(sprintf(fmt, ...), call. = call.)
我错过了什么吗?当我切换文件夹时,我的印象是出了点问题,但我不确定如何解决这个问题。
预先感谢您的帮助
解决方案
这里的问题renv::load()
是掩蔽base::load()
。一般来说,你不应该library(renv)
在你的脚本中调用——相反,你应该在任何renv
你想使用的 API 前加上renv::
.
或者,显式调用base::load()
以确保load()
解决了正确的版本。
推荐阅读
- django - 每次在 django 中调用 api 端点时我们如何调用函数
- types - 有没有办法从给定域动态构建函数到给定的共域?
- git - 将 Git 分支克隆到新存储库
- java - 如何直接从 Selenium API 代码打开带有消息的浏览器弹出窗口?
- spring - Jersey 2.27、spring 5.0.7.RELEASE 和 Java 10 合规性问题
- javascript - 使用 url 正文链接到短信应用
- azure - 触发逻辑应用为多个 CRM 组织执行
- python - 根据键值删除日期在所需日期点之前的行
- powershell - 在詹金斯管道中不同代理的PS阶段之间传递变量
- aws-glue - 如何在 aws 胶水中进行模式演变?