[英]In R, what does “loaded via a namespace (and not attached)” mean?
在R中,在sessionInfo()
“通過命名空間加載(而不附加)加載”包是什么意思?
編輯 :
例如:
> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
---->>>> loaded via a namespace (and not attached):
---->>>> [1] tools_2.15.2
當人們評估library(foo)
,R首先將包foo加載到內存中,然后將包附加到search()
路徑。 其他操作,例如loadNamespace("foo")
或foo::fun
,或當第三方指示其從foo導入符號時,將加載程序包,但不將其附加到搜索路徑。 由於R是一種動態語言,因此每個函數調用都涉及遍歷可用符號以查找匹配的第一個符號。 通過分離附加和加載操作並因此限制了要搜索的符號數,它是有效的,並且避免了不必要的名稱沖突。
在上面的示例中,工具包已加載,但尚未連接。 當一個人在R命令提示符下鍵入符號時,R首先在全局名稱空間(由search()
返回的第一個元素,如果找不到,則在search()
連續元素中) search()
符號。由於未附加工具,無法解析工具中的符號。
> file_ext
Error: object 'file_ext' not found
但是,無論工具是否在搜索路徑上,都可以使用tools::file_ext
訪問它們。
這意味着程序包(在這種情況下為R)可以訪問程序包的功能/對象,但用戶不能在未顯式加載工具包的情況下加載其中,這些工具包已加載了統計信息,圖形等,並可供用戶使用。
這是一個例子:
sessionInfo()
file_ext("file.com")
tools::file_ext("file.com")
sessionInfo()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.