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

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

?library不显示任何将卸载程序包的选项。

有一个build议 , detach可以卸载软件包,但以下都失败了:

 detach(vegan) 

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

 detach("vegan") 

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

那么如何卸载一个软件包呢?

尝试这个:

 detach("package:vegan", unload=TRUE) 

一次加载多个版本的软件包是可能的(例如,如果在不同的库中有开发版本和稳定版本)。 要保证所有副本都已分离,请使用此function。

 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) 

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

 unloadNamespace("sqldf") 

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

您可以取消选中RStudio(包)中的checkboxbutton

我尝试了kohske作为答案所写的内容,然后再次出现错误,于是我做了一些search,发现这对我有效(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) 

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

我希望能让你有一天

只要去OUTPUT窗口。 然后点击包图标(它位于绘图和帮助图标之间)。 从你想要卸载的软件包中删除“勾号/复选标记”。

对于uoploud软件包,只需在软件包前放上一个“勾号或复选标记”或使用:library(lme4)