В R, что означает "загружается через пространство имен (и не прилагается)" означает?
В 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
Ответы
Ответ 1
Это означает, что пакет (в этом случае R) может получить доступ к функциям/объектам пакета, но пользователь не может без явно загружать пакет инструментов, где статистика, графика и т.д. Загружаются и готовы для пользователя.
Вот пример:
sessionInfo()
file_ext("file.com")
tools::file_ext("file.com")
sessionInfo()
Ответ 2
Когда оценивается library(foo)
, R сначала загружает пакет foo в память, а затем присоединяет пакет к пути search()
. Другие операции, такие как loadNamespace("foo")
или foo::fun
, или когда третья сторона указывает, что она импортирует символы из foo, загружает пакет, но не привязывает его к пути поиска. Поскольку R является динамическим языком, каждый вызов функции включает обход доступных символов, чтобы найти первое, что соответствует. Он эффективен и позволяет избежать ненужных конфликтов имен, разделяя операции прикрепления и загрузки и, следовательно, ограничивая количество символов для поиска.
В приведенном выше примере пакет инструментов был загружен, но не включен (пока). Когда кто-то вводит символ в командной строке R, R ищет символ сначала в глобальном пространстве имен (первый элемент, возвращаемый search()
а если не найден, то в последовательных элементах search()
. Поскольку инструменты не присоединены, символы в инструментах не разрешаются.
> file_ext
Error: object 'file_ext' not found
Тем не менее, у них есть доступ к ним с помощью tools::file_ext
, независимо от того, tools::file_ext
ли инструменты в пути поиска или нет.