提问



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


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


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


detach(vegan)



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



detach("vegan")



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



那么如何卸载包呢?

最佳参考


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

其它参考1


您还可以使用unloadNamespace命令,如下所示:


unloadNamespace("sqldf")


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

其它参考2


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

其它参考3


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


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


或者也


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

其它参考4


当您在脚本之间来回切换时,可能只需要 来卸载程序包。这是一个简单的IF语句,它可以防止在您尝试卸载当前未加载的软件包时出现的警告。


if("package:vegan" %in% search()) detach("package:vegan", unload=TRUE) 


将其包含在脚本的顶部可能会有所帮助。


我希望你的一天!

其它参考5


只需转到OUTPUT窗口,然后单击Packages图标(它位于 Plot和Help 图标之间)。从要卸载的包中删除勾选/复选标记


再次使用包装只需在包装前面加上勾选或勾选标记或使用:


library (lme4)