r 函数 requirenamespace() 是什么意思?

问题描述 投票:0回答:1

每个软件包安装说明都以:

if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")

我想知道

requireNamespace()
功能是什么意思?

文档中给出的定义对我来说没有多大意义。

requireNamespace()
loadNamespace
有什么不同?

loadNamespace 的包装器,类似于返回逻辑值的 require”

在安装每个新软件包之前是否始终需要以下两行?

if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
r
1个回答
0
投票

requireNamespace()
loadNamespace()
的包装,返回逻辑值。
loadNamespace()
加载指定的名称空间并将其注册到内部数据库中。 (请参阅通过运行
?requireNamespace
访问的功能文档。)

它不会将名称空间附加到搜索路径。所以,假设我安装了软件包

"vegan"
并且我运行:

requireNamespace("vegan")
as.mlm()

它将返回:

Error in as.mlm() : could not find function "as.mlm"

如果我跑步

require("vegan")
as.mlm()

我将(从当前的纯素版本开始)收到一条消息,表明我想要使用的功能已被弃用。

因此,您可以使用

requireNamespace()
来验证某些包是否存在,同时防止潜在的命名空间冲突。

© www.soinside.com 2019 - 2024. All rights reserved.