ns-load 位于 base 包(package)。 说明
加载和卸载名称空间的函数。
用法
attachNamespace(ns, pos = 2L, depends = NULL, exclude, include.only)
loadNamespace(package, lib.loc = NULL,
keep.source = getOption("keep.source.pkgs"),
partial = FALSE, versionCheck = NULL,
keep.parse.data = getOption("keep.parse.data.pkgs"))
requireNamespace(package, ..., quietly = FALSE)
loadedNamespaces()
unloadNamespace(ns)
isNamespaceLoaded(name)
参数
ns |
字符串或名称空间对象。 |
pos |
指定要附加的位置的整数。 |
depends |
|
package |
命名要加载的包/名称空间的字符串。 |
lib.loc |
指定库搜索路径的字符向量(R可供搜索的 Library 树。 |
keep.source |
现在除了软件包安装期间之外都被忽略。 |
keep.parse.data |
除软件包安装期间外均被忽略。 |
partial |
逻辑性;如果为 true,则在加载代码后立即停止。 |
versionCheck |
|
quietly |
逻辑:是否应该抑制进度和错误消息? |
name |
字符串或 ‘name’,请参阅包的 |
exclude, include.only |
字符向量;请参阅 |
... |
要传递给 |
细节
当使用 library 加载名称空间和所需的任何导入时,通常会隐式调用函数 loadNamespace 和 attachNamespace。然而,有时直接调用这些函数可能很有用。
loadNamespace 加载指定的名称空间并将其注册到内部数据库中。当名称空间之一已加载时,加载该名称空间的请求无效。这些参数与 library 的相应参数具有相同的含义,其帮助页面解释了如何选择特定安装包的详细信息。加载后,loadNamespace 在名称空间中查找名为.onLoad 的钩子函数作为内部变量(不应将其导出)。部分加载用于支持延迟加载安装。
(可选)在加载过程中检查包许可证:请参阅 library 帮助中的“许可证”部分。
loadNamespace 不会将其加载的名称空间附加到搜索路径。 attachNamespace 可用于将包含名称空间导出值的框架附加到搜索路径(但这几乎总是通过 library 完成)。钩子函数 .onAttach 在附加名称空间导出后运行。
requireNamespace 是 loadNamespace 的包装器,类似于返回逻辑值的 require。
loadedNamespaces 返回已加载名称空间名称的字符向量。
isNamespaceLoaded(pkg) 相当于 pkg %in% loadedNamespaces() 但效率更高。
unloadNamespace 可用于尝试强制卸载名称空间。如果附加了名称空间,则首先对其进行 detach 编辑,从而在名称空间中运行 .onDetach 或 .Last.lib 函数(如果导出)。如果名称空间是由其他加载的名称空间导入的,则会发出错误信号并且不会卸载该名称空间。如果定义了,则在从内部注册表中删除名称空间之前会运行钩子函数.onUnload。
请参阅 detach 帮助中有关卸载和重新加载名称空间的一些问题的注释。
值
attachNamespace 以不可见的方式返回它添加到搜索路径的包环境。
loadNamespace 返回名称空间环境,可以是已加载的环境,也可以是函数导致加载的环境。
requireNamespace 如果成功则返回 TRUE 或 FALSE 。
loadedNamespaces 返回 character 向量。
unloadNamespace 无形地返回 NULL 。
追踪
来自R4.1.0 操作loadNamespace可以追踪,这可以帮助追踪意外消息的原因(包括它们来自哪个包)loadNamespace以多种方式调用,包括从自身调用和由::并且可以通过调用load)。设置环境变量_R_TRACE_LOADNAMESPACE_更改为数值将生成有关进度的附加消息。非零值,例如1,报告正在加载哪个名称空间以及加载完成时:值2到4报告越来越详细。负值保留用于跟踪特定函数,其当前含义记录在 source-code 注释中。
加载标准包永远不会被追踪。
例子
(lns <- loadedNamespaces())
statL <- isNamespaceLoaded("stats")
stopifnot( identical(statL, "stats" %in% lns) )
## The string "foo" and the symbol 'foo' can be used interchangably here:
stopifnot( identical(isNamespaceLoaded( "foo" ), FALSE),
identical(isNamespaceLoaded(quote(foo)), FALSE),
identical(isNamespaceLoaded(quote(stats)), statL))
hasS <- isNamespaceLoaded("splines") # (to restore if needed)
Sns <- asNamespace("splines") # loads it if not already
stopifnot( isNamespaceLoaded("splines"))
if (is.null(try(unloadNamespace(Sns)))) # try unloading the NS 'object'
stopifnot( ! isNamespaceLoaded("splines"))
if (hasS) loadNamespace("splines") # (restoring previous state)
作者
Luke Tierney and R-core
参考
The ‘Writing R Extensions’ manual, section “Package namespaces”.
也可以看看
相关用法
- R ns-dblcolon 双冒号和三冒号运算符
- R ns-internals 命名空间内部结构
- R ns-reflect 命名空间反射支持
- R ns-hooks 命名空间事件的钩子
- R ns-topenv 顶级环境
- R noquote “无引号”字符串打印类
- R numeric 数值向量
- R numeric_version 数字版本
- R nargs 函数的参数数量
- R normalizePath 以规范形式表达文件路径
- R nchar 计算字符数(或字节数或宽度)
- R norm 计算矩阵的范数
- R name 名称和符号
- R nrow 数组的行/列数
- R names 对象的名称
- R nlevels 因子的水平数
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
- R rank 样本排名
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Loading and Unloading Name Spaces。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
