require()
和library()
什么区别?
#1楼
我关于差异的初步理论是, library
加载包是否已经加载,即它可能重新加载已经加载的包,而只require
检查它是否已加载,或者如果不加载则加载它(因此使用在依赖某个包的函数中)。 但是,文档驳斥了这一点,并明确指出这两个函数都不会重新加载已加载的包。
#2楼
?library
你会看到:
library(package)
和require(package)
都使用namepackage
加载package
并将其放在搜索列表中。require
设计用于其他功能; 如果包不存在,它返回FALSE
并发出警告(而不是像library()
默认执行的错误library()
。 这两个函数都检查并更新当前加载的包列表,并且不重新加载已加载的包。 (如果要重新加载此类包,unloadNamespace
调用detach(unload = TRUE)
或unloadNamespace
。)如果要加载包而不将其放在搜索列表中,请使用requireNamespace
。
#3楼
如果要在必要时安装软件包,可以使用require()
ÿ