分离R中另一个包导入的所有包

Posted

技术标签:

【中文标题】分离R中另一个包导入的所有包【英文标题】:Detach All Packages Imported by Another Package in R 【发布时间】:2017-05-17 15:56:34 【问题描述】:

所以,我正在尝试使用包“ecp”,但加载它会引发以下错误:

Error in unloadNamespace(package) : 
  namespace ‘Rcpp’ is imported by ‘tibble’, ‘htmltools’, ‘purrr’, 
‘scales’, ‘plyr’, ‘dplyr’, ‘tidyr’ so cannot be unloaded
Error in library(pkg, character.only = TRUE, logical.return = TRUE, 
lib.loc = lib.loc,  : 
  Package ‘Rcpp’ version 0.12.8 cannot be unloaded

它所指的包是在我“情节”加载包时导入的。使用detach('package:plotly', unload=TRUE) 并不能修复错误,我想是因为它不会卸载其他附带的包。有没有一种快速的方法来卸载一个包和它导入的所有包,或者在这种情况下必须手动完成它们?

【问题讨论】:

只需参考ecp中的函数ecp::function_name()即可;你不需要加载它 【参考方案1】:

假设我需要分离特定的包将使用下面的代码:

detach("package:data.table")

但是想要分离所有的包(基础包默认可用)

lapply(paste('package:',names(sessionInfo()$otherPkgs),sep=""),detach,character.only=TRUE,unload=TRUE)

【讨论】:

以上是关于分离R中另一个包导入的所有包的主要内容,如果未能解决你的问题,请参考以下文章

Android项目,在manifest中修改包名之后,如何批量更改导入R文件

如何导入 Python 命名空间包的所有子模块?

在 R 会话中删除/分离包

项目依赖包导出与导入

R语言使用data函数获取当前R环境可用的示例数据集:获取datasets包中的所有示例数据集获取所有包的数据集获取特定包的数据集

如何判断你在 R 中使用了哪些包