Я хотел бы выгрузить пакет без перезапуска R (в основном из-за перезапуска R, поскольку я тестирую разные конфликтующие пакеты, становится расстраивающим, но, возможно, это может быть использовано в программе для использования одной функции, а затем другой - - хотя ссылка на пространство имен, вероятно, является лучшей идеей для этого использования).
?library
не показывает никаких параметров, которые могли бы выгрузить пакет.
Существует предложение , что detach
может выгрузить пакет, но следующие неудачные:
detach(vegan)
Ошибка в
detach(vegan)
: неверныйname
аргумент
detach("vegan")
Ошибка в
detach("vegan")
: неверныйname
аргумент
Итак, как мне разгрузить пакет?
Попробуйте следующее:
detach("package:vegan", unload=TRUE)
Можно сразу загрузить несколько версий пакета (например, если у вас есть версия для разработки и стабильная версия в разных библиотеках). Чтобы отделить гарантию, что все копии отсоединены, используйте эту функцию.
detach_package <- function(pkg, character.only = FALSE)
{
if(!character.only)
{
pkg <- deparse(substitute(pkg))
}
search_item <- paste("package", pkg, sep = ":")
while(search_item %in% search())
{
detach(search_item, unload = TRUE, character.only = TRUE)
}
}
Использование, например
detach_package(vegan)
или
detach_package("vegan", TRUE)
Hmisc
он также загружает survival
и splines
есть ли способ разгрузить эти группы вместе?
Вы также можете использовать команду unloadNamespace, как в:
unloadNamespace("sqldf")
Функция отделяет пространство имен до его выгрузки.
вы можете снять флажок в RStudio (пакеты)
detach("package:packageToUnload", unload=TRUE)
и ничем не отличается от уже предложенного решения.
Я попробовал то, что kohske написал как ответ, и снова получил ошибку, поэтому я сделал поиск и нашел это, что сработало для меня (R 3.0.2):
require(splines) # package
detach(package:splines)
а также
library(splines)
pkg <- "package:splines"
detach(pkg, character.only = TRUE)
Когда вы переходите туда и обратно между сценариями, иногда может потребоваться выгрузка пакета. Вот простой оператор IF, который предотвратит появление предупреждений, если вы попытаетесь выгрузить пакет, который в настоящий момент не загружен.
if("package:vegan" %in% search()) detach("package:vegan", unload=TRUE)
Включение этого в начало script может оказаться полезным.
Я надеюсь, что это сделает ваш день!
Просто перейдите в окно OUTPUT. затем щелкните значок Packages (он расположен между значками Plot и Help). удалить "галочку/галочку" из пакета, который вы хотите выгрузить.
для uoploud пакет просто помещает отметку "отметьте или отметьте" перед упаковкой или используйте: библиотека (lme4)
.libPaths()
дает вам пути ко всем библиотекам в вашей системе.library
двумя способами: 1 - это не то же самое использованиеlibrary
, что и в других местах, и 2 - термин используется вlibrary()
для загрузки ... не библиотека, а пакет.