簡體   English   中英

在R中,“通過名稱空間(未附加)加載”是什么意思?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM