Выгрузить все загруженные пакеты - PullRequest
2 голосов
/ 12 апреля 2019

Я смотрел на это, но не мог с готовностью найти, как это сделать. Я попытался написать какую-то функцию, которая не работает с ошибкой:

Ошибка в unloadNamespace (x): Пространство имен «graphics» импортируется здесь «stats и другими пакетами»

Однако многих из этих пакетов нет даже в списке search.

[1] ".GlobalEnv"        "tools:rstudio"     "package:grDevices" "package:utils"     "package:datasets" 
[6] "package:methods"   "Autoloads"         "package:base"

Это функция, с которой я играл:

lapply(gsub("package:","",search()[grep(".*(?<=package:)",search(),perl = T)]),
       function(x) unloadNamespace(x))

Вариант, который не работает:

lapply(gsub("package:","",search()[grep(".*(?<=package:)",search(),perl = T)]),
       function(x) detach(x))

Вопрос : Как лучше всего выгрузить несколько пакетов (лучше, если бы я мог выгрузить их все)?

1 Ответ

1 голос
/ 12 апреля 2019

Обычно я запускаю что-то вроде этого, чтобы выгрузить все неосновные пакеты:

detachAllPackages <- function() {
  basic.packages.blank <- c(    
    "stats",    
    "graphics",    
    "grDevices",    
    "utils",   
    "datasets",  
    "methods",    
    "base"    
  )    
  basic.packages <- paste("package:", basic.packages.blank, sep = "")   
  package.list <- search()[ifelse(unlist(gregexpr("package:", search())) == 1, TRUE, FALSE)]   
  package.list <- setdiff(package.list, basic.packages)   
  if (length(package.list) > 0) {   
    for (package in package.list) {   
      detach(package, character.only = TRUE)   
    }   
  }    
}

detachAllPackages()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...