每个软件包安装说明的开头都是:
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
我想知道requireNamespace()
函数是什么意思?
文档中给出的定义对我来说没有多大意义。requireNamespace()
和loadNamespace
有什么不同?
类似于require的loadNamespace的 Package 器,返回逻辑值”
在每次安装新软件包之前,是否总是需要以下两行?
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
1条答案
按热度按时间ryhaxcpt1#
要理解
requireNamespace()
的含义,首先必须了解loadNamespace()
函数:loadNamespace()
loadNamespace加载指定的name space并将其注册到内部数据库中。如果已加载某个名称空间,则加载该名称空间的请求将无效source
那么requireNameSpace()呢?
requireNamespace是loadNamespace的 Package 器,类似于
require
,它返回一个逻辑值[...],如果成功则返回TRUE,如果失败则返回FALSE。换句话说,它与loadNamespace相同,只是它返回True或False。
每次安装新软件包之前,是否都需要以下两行?
据我所知,不是,
"BiocManager"
软件包是用于管理与Bioconductor项目相关的软件包的,这显然只是R用户的一个子集。您共享的代码片段所做的是检查它是否可以加载BiocManager,如果不能,则安装包。
希望这有帮助!
感谢Dirk Eddelbuettel的评论和指导。