RStudio中的包冲突,分离()无法工作
Posted
技术标签:
【中文标题】RStudio中的包冲突,分离()无法工作【英文标题】:Conflict of Packages in RStudio, detach() fails to work 【发布时间】:2018-01-07 10:28:58 【问题描述】:我目前正在对 R 中的 'birthwt'
数据集进行逻辑回归。此数据可在包 'MASS'
中找到。
但是,当我使用library(MASS)
检索数据时,它会从 dplyr 包中屏蔽select()
的功能。我在分析中几乎立即使用了这个函数。
加载数据后,我尝试detach("package:MASS", unload = TRUE)
但我遇到了‘MASS’ namespace cannot be unloaded:
namespace ‘MASS’ is imported by ‘pbkrtest’, ‘car’, ‘lme4’ so cannot be unloaded
我真的很想解决这个问题,因为我已经完成了对数据的所有必要分析,但在尝试编织时遇到了这个问题。
提前感谢您的帮助!
【问题讨论】:
【参考方案1】:您不应该选择unload = TRUE
。默认是unload = FALSE
,这就是你需要的。
解释如下:
在 R 中,可以“加载”包,这使得它们可用于从它们导入函数的其他包。它们也可以“附加”,将它们放在搜索列表中,以便在控制台中的用户可以使用它们。如果附加了一个包,则需要加载它,但反之则不然。
所以如果你运行detach("package:MASS")
,你会将它从搜索列表中删除,并且在控制台中,运行select()
将不再在MASS 中找到该函数。它仍将被加载,因此可供其他需要它的包使用。
顺便说一句,使用前缀形式 MASS::select()
或 dplyr::select()
将有效,无论其中一个或两个包是否在您的搜索列表中。
【讨论】:
感谢您的回复!我试过dplyr::select()
并且工作得很好!以上是关于RStudio中的包冲突,分离()无法工作的主要内容,如果未能解决你的问题,请参考以下文章