detach
位于 base
包(package)。 说明
分离数据库,即从数据库中删除它search()
可用路径R对象。通常这是一个data.frame
这已经是attach
ed 或附加的包library
.
用法
detach(name, pos = 2L, unload = FALSE, character.only = FALSE,
force = FALSE)
参数
name |
要分离的对象。默认为 |
pos |
要分离的数据库 |
unload |
一个逻辑值,指示在分离包时是否尝试卸载名称空间。如果包有命名空间并且 |
character.only |
指示 |
force |
逻辑:即使其他附加包依赖于某个包,也应该分离该包吗? |
细节
这最常与引用搜索列表上的位置的单个数字参数一起使用,也可以与搜索列表上的项目的不带引号或带引号的名称一起使用,例如 package:tools
。
如果一个包有一个命名空间,默认情况下分离它不会卸载该命名空间(甚至可能不会unload = TRUE
),并且分离通常不会卸载任何动态加载的编译代码(DLL);看getLoadedDLLs
和library.dynam.unload
。此外,命名空间中已注册的 S3 方法不会被删除,并且由于 S3 方法在注册时未标记到其源,因此通常不可能安全地 un-register 与给定包关联的方法。如果你使用library
在加载了名称空间的包上,它附加已加载名称空间的导出。因此,分离并重新附加包可能不会刷新包的部分或全部组件,并且是不可取的。完全分离包的最可靠方法是重新启动R.
值
返回值为invisible。分离包时为 NULL
,否则为附加对象时 attach
返回的环境(包含附加后的任何更改)。
好的做法
不带参数的 detach()
将删除工作区之后搜索路径上的第一项。很容易调用它太多或太少,或者没有注意到自 attach
调用以来搜索路径已更改。
最好避免在函数中使用 attach
/detach
(请参阅 attach
的帮助),并且在交互式使用和脚本中,谨慎地按名称分离。
注意
您无法分离工作区(位置 1)或 base
包(搜索列表中的最后一项),尝试这样做将引发错误。
卸载某些名称空间会产生不良副作用:例如卸货grid
关闭所有图形设备,并且在某些系统上tcltk
卸载后无法重新加载,可能会崩溃R如果尝试这样做。
例子
require(splines) # package
detach(package:splines)
## or also
library(splines)
pkg <- "package:splines"
detach(pkg, character.only = TRUE)
## careful: do not do this unless 'splines' is not already attached.
library(splines)
detach(2) # 'pos' used for 'name'
## an example of the name argument to attach
## and of detaching a database named by a character vector
attach_and_detach <- function(db, pos = 2)
{
name <- deparse1(substitute(db))
attach(db, pos = pos, name = name)
print(search()[pos])
detach(name, character.only = TRUE)
}
attach_and_detach(women, pos = 3)
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
attach
、library
、search
、objects
、unloadNamespace
、library.dynam.unload
。
相关用法
- R det 计算矩阵的行列式
- R deparse 表达式解析
- R deparseOpts 表达式解析选项
- R debug 调试函数
- R delayedAssign 延迟评估和承诺
- R dump R 对象的文本表示
- R diag 矩阵对角线
- R dots ...、..1 等在函数中使用
- R do.call 执行函数调用
- R dcf 以 DCF 格式读写数据
- R data.class 对象类
- R dimnames 对象的暗名称
- R dyn.load 对外函数接口
- R diff 滞后差异
- R dput 将对象写入文件或重新创建它
- R duplicated 确定重复元素
- R dim 物体的尺寸
- R dontCheck 抑制检查的身份函数
- R drop 删除冗余盘区信息
- R difftime 时间间隔/差异
- R data.frame DataFrame
- R double 双精度向量
- R data.matrix 将 DataFrame 转换为数字矩阵
- R date 系统日期和时间
- R droplevels 删除因子中未使用的级别
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Detach Objects from the Search Path。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。