Error: "project "path/to/file.rda" has no activated script and so cannot be activated" with renv
Error: "project "path/to/file.rda" has no activated script and so cannot be activated" with 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()
的正确版本。
我正在尝试将 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()
的正确版本。