检查当前是否附加了 r 包
Checking if an r package is currently attached
我的工作流程遇到了问题,因为我在 rmarkdown 中采购了多个脚本,其中一些需要包 dplyr
,一些使用 plyr
。
问题是 rename
函数存在于两个包中,如果 dplyr
当前已附加,则 plyr
中的 rename
函数将不起作用。
我如何在我的脚本中包含一个函数来检查 dplyr
是否已附加,如果是,则将其分离?
我知道如何通过 detach("package:dplyr", unload = TRUE)
分离包。我不知道的是如何检查包裹是否已附加。
我同意最好的方法是使用 dplyr::rename
和 plyr::rename
来明确调用您想要的函数。
但是,如果您确实想检查是否附加了一个包,然后将其分离,我使用
if("plyr" %in% (.packages())){
detach("package:plyr", unload=TRUE)
}
这里值得注意的是,包本身会警告您按特定顺序加载它们。如果你加载 dplyr,然后加载 plyr,你会得到一个警告:
You have loaded plyr after dplyr - this is likely to cause problems.
If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
library(plyr); library(dplyr)
我的理解是,如果 dplyr 的功能被 plyr 弃用,dplyr 将无法正常工作,但由于 dplyr 从 plyr 弃用的功能有效更新,因此它们应该可以很好地发挥作用。因此,请确保以正确的顺序加载它们:
library(plyr)
library(dplyr)
编辑:我重新阅读了你的问题,你的问题是 dplyr 对 plyr 函数的弃用,所以我的观点与你不太相关,抱歉。我会把它留在这里以防其他人需要这些信息,因为它在前一段时间给我带来了问题 :P
我的工作流程遇到了问题,因为我在 rmarkdown 中采购了多个脚本,其中一些需要包 dplyr
,一些使用 plyr
。
问题是 rename
函数存在于两个包中,如果 dplyr
当前已附加,则 plyr
中的 rename
函数将不起作用。
我如何在我的脚本中包含一个函数来检查 dplyr
是否已附加,如果是,则将其分离?
我知道如何通过 detach("package:dplyr", unload = TRUE)
分离包。我不知道的是如何检查包裹是否已附加。
我同意最好的方法是使用 dplyr::rename
和 plyr::rename
来明确调用您想要的函数。
但是,如果您确实想检查是否附加了一个包,然后将其分离,我使用
if("plyr" %in% (.packages())){
detach("package:plyr", unload=TRUE)
}
这里值得注意的是,包本身会警告您按特定顺序加载它们。如果你加载 dplyr,然后加载 plyr,你会得到一个警告:
You have loaded plyr after dplyr - this is likely to cause problems. If you need functions from both plyr and dplyr, please load plyr first, then dplyr: library(plyr); library(dplyr)
我的理解是,如果 dplyr 的功能被 plyr 弃用,dplyr 将无法正常工作,但由于 dplyr 从 plyr 弃用的功能有效更新,因此它们应该可以很好地发挥作用。因此,请确保以正确的顺序加载它们:
library(plyr)
library(dplyr)
编辑:我重新阅读了你的问题,你的问题是 dplyr 对 plyr 函数的弃用,所以我的观点与你不太相关,抱歉。我会把它留在这里以防其他人需要这些信息,因为它在前一段时间给我带来了问题 :P