小编典典

如何在不重新启动 R 的情况下卸载包

all

我想卸载一个包而不必重新启动 R(主要是因为在我尝试不同的、冲突的包时重新启动 R
会令人沮丧,但可以想象这可以在程序中使用一个函数然后使用另一个函数——尽管命名空间对于这种用途,引用可能是一个更好的主意)。

?library没有显示任何可以卸载包的选项。

有一个建议可以detach卸载包,但以下都失败:

detach(vegan)

错误detach(vegan):无效name参数

detach("vegan")

错误detach("vegan"):无效name参数

那么如何卸载包呢?


阅读 91

收藏
2022-03-06

共1个答案

小编典典

试试这个(?detach更多细节参见):

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)
2022-03-06