RStudio中的包冲突,detach()无法正常工作

时间:2018-01-07 10:28:58

标签: r packages detach

我目前正在对R中找到的'birthwt'数据集进行Logistic回归。此数据位于包'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 个答案:

答案 0 :(得分:2)

您不应选择unload = TRUE。默认值为unload = FALSE,这就是您所需要的。

以下是解释:

在R中,可以“加载”包,这使得它们可用于从其导入函数的其他包。它们也可以“附加”,将它们放在搜索列表中,以便控制台中的用户可以使用它们。如果附加了一个包,则需要加载它,但反之则不然。

因此,如果您运行detach("package:MASS"),则会将其从搜索列表中删除,并且在控制台中,运行select()将无法再在MASS中找到该功能。它仍将被加载,因此可供其他需要它的软件包使用。

顺便说一句,使用前缀表单MASS::select()dplyr::select()无论是否包含在您的搜索列表中,都会有效。