1

我正在遵循这些步骤,就像这里的工作流程一样

  1. renv::init()
  2. 照常工作并安装新软件包
  3. renv::snapshot()

我面临的问题是在运行时library(renv),许多函数被屏蔽了,比如加载,所以我必须在我的代码中重新屏蔽它们才能让它再次工作。像base::load(...)有没有办法避免这种掩蔽?

这里是运行时的日志library(renv)

> 
> Attaching package: ‘renv’
> 
> The following object is masked from ‘package:stats’:
> 
>     update
> 
> The following objects are masked from ‘package:utils’:
> 
>     history, upgrade
> 
> The following objects are masked from ‘package:base’:
> 
>     load, remove
4

2 回答 2

1

renv设计时期望用户renv::在提及其功能时通常总是使用前缀;例如

renv::install()

出于这个原因,您通常不应该renv通过加载library(),而应该通过该前缀使用它(除非您想管理搜索路径上的冲突)。

如果您仍想renv作为常规 R 包加载,我建议您使用:

library(renv, include.only = <...>)

以确保仅将您想要在搜索路径上的功能放置在那里。

于 2020-12-10T00:32:18.980 回答
0

据我了解,该exclude论点可能会解决您的问题。喜欢:

library(renv, exclude = c("load", "update"))

更安全的是通过 :: 直接使用方法来解决此类冲突。

于 2020-12-09T22:32:52.980 回答