检查当前是否附有r包

时间:2016-06-06 23:57:58

标签: r dplyr plyr

我的工作流程出现问题,因为我在rmarkdown中采购了多个脚本,其中一些需要包dplyr,其中一些使用plyr

问题是两个包中都存在rename函数,如果当前附加了dplyr,则rename中的plyr函数无法正常工作。

如何在我的脚本中包含一个检查是否附加dplyr的函数,如果是,则将其分离?

我知道如何通过detach("package:dplyr", unload = TRUE)分离包裹。我不知道的是如何检查是否附上了包裹。

2 个答案:

答案 0 :(得分:11)

我同意最好的方法是使用dplyr::renameplyr::rename来明确调用您想要的功能。

但是,如果您确实要检查是否已附加包,然后再将其分离,请使用

if("plyr" %in% (.packages())){
  detach("package:plyr", unload=TRUE) 
}

答案 1 :(得分:1)

值得注意的是,软件包本身会警告您按特定顺序加载它们。如果您加载dplyr,然后plyr,您将收到警告:

  

你在dplyr之后加载了plyr - 这可能会导致问题。   如果您需要plyr和dplyr的功能,请先加载plyr,然后再加载dplyr:   库(plyr);库(dplyr)

我的理解是,如果dplyr的函数被plyr弃用,那么dplyr效果不好,但是由于dplyr从plyr中弃用的函数是有效更新的,所以它们应该很好地运行。因此,请确保以正确的顺序加载它们:

library(plyr)
library(dplyr)
编辑:我重新阅读了你的问题,你的问题是dplyr对plyr函数的弃用,所以我的观点与你不太相关,对不起。我会把它留在这里以防其他人需要这些信息,因为它引起了我一段时间的问题:P