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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。