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

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

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

detach(vegan)

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

detach("vegan")

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

那我怎么卸货呢?


当前回答

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

其他回答

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

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

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

unloadNamespace("sqldf")

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

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

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

在脚本顶部包含这一点可能会有所帮助。

我希望这能让你开心!

另一个选择是

devtools::unload("your-package")

这显然也处理了未使用unloadNamespace()删除的已注册S3方法的问题。