#r #namespaces #packages
#r #пространства имен #пакет
Вопрос:
Я пишу функцию, которая принимает имя установленного пакета и возвращает фрейм данных, содержащий список всех фреймов данных, доступных в этом пакете, вместе с количеством и типами переменных в этих фреймах данных.
Для того, чтобы сделать это, мне нужно require
временно удалить пакет, чтобы я мог получить доступ к его наборам данных. Проблема, с которой я сталкиваюсь, заключается в том, что требование пакета также вносит множество дополнительных элементов в путь поиска и загруженные пространства имен, помимо рассматриваемого пакета. Я хочу, чтобы моя функция приводила в порядок саму себя, но я не могу найти хороший способ для detach
всего, что было импортировано, когда требовался пакет. В частности, detach
кажется, что отсоединяется только пакет, но не какой-либо другой импортированный материал.
Есть какие-нибудь советы?
Комментарии:
1. Доступ к экспортируемым объектам пакета (включая наборы данных) можно получить с помощью
::
. НапримерMASS::Insurance
2. Верно, но пакет, который я пишу, не будет заранее знать, какие наборы данных доступны в запрошенном пакете. Мне нужно прикрепить запрошенный пакет, прежде чем я узнаю, какие наборы данных доступны в этом пакете.
Ответ №1:
Я не уверен, с какой IDE вы работаете, но многие из них имеют «завершение табуляции». Если я наберу:……. ?unload
на своей консоли и нажму <tab>
, я сразу увижу ??unloadNamespace
… так что это была бы разумная функция для исследования. Сначала вам следует взглянуть на:
?unloadNamespace
… а затем решите, достаточно ли этого. Также существует detach
функция, у которой есть ссылка на связанную с ней страницу справки на этой странице справки.
Комментарии:
1. Ни
detach
ниunloadNamespace
не выполняйте то, что я запрашиваю.