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

?库没有显示任何卸载包的选项。

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

detach(vegan)

分离错误(纯素):无效的名称参数

detach("vegan")

分离错误("vegan"):无效的名称参数

那我怎么卸货呢?


当前回答

detach(package:PackageName)有效,不需要使用引号。

其他回答

试试这个(详见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)

or

detach_package("vegan", TRUE)

我尝试了kohske写的答案,我又得到了错误,所以我做了一些搜索,发现这对我有用(R 3.0.2):

require(splines) # package
detach(package:splines)

或者还

library(splines)
pkg <- "package:splines"
detach(pkg, character.only = TRUE)

detach(package:PackageName)有效,不需要使用引号。

你也可以使用unloadNamespace命令,如下所示:

unloadNamespace("sqldf")

该函数在卸载名称空间之前将其分离。

您可以取消RStudio(包)中的复选框按钮。