在R,什么是“通过一个命名空间加载(而不是附后)”是什么意思?(In R, what does “l

2019-07-20 06:30发布

在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

Answer 1:

这意味着该包(在这种情况下R)可以访问包的功能/对象,但用户无法而不显式加载,其中作为统计数据,图形等被加载,并准备去用户的工具包。

下面是一个例子:

sessionInfo()
file_ext("file.com")
tools::file_ext("file.com")
sessionInfo()


Answer 2:

当一个评估library(foo) ,R首先加载软件包foo到存储器中,然后附着封装到search()路径。 其他操作,如loadNamespace("foo")foo::fun ,或当第三方表明它导入符号从富,装载包,但不要将其连接到搜索路径。 由于R是一种动态语言,每个函数调用涉及可用符号遍历查找匹配的第一个。 它是有效的,并且避免了不必要的名称冲突,通过分离连接和装载操作,并因此限制符号来搜索的数目。

在上面的例子中,工具包已经被加载,但(还)没有连接。 当一个类型中在R命令提示的符号,R查找该第一符号在全局命名空间(由返回的第一个元素search()并且如果不是在连续元素然后发现search()由于工具不附在工具符号都没有解决。

> file_ext
Error: object 'file_ext' not found

尽管如此,人们对其的访问权tools::file_ext ,工具是否搜索路径或不上。



文章来源: In R, what does “loaded via a namespace (and not attached)” mean?
标签: r package