首页 > 解决方案 > 为什么在 R 中运行 library(renv) 后对象被屏蔽?

问题描述

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

  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

标签: rrenvr-environment

解决方案


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

renv::install()

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

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

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

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


推荐阅读