[英]Checking if an r package is currently attached
我的工作流程有問題,因為我在rmarkdown中采購了多個腳本,其中一些需要包dplyr
,其中一些使用plyr
。
問題是,在rename
功能在兩個包是否存在以及dplyr
當前連接的rename
的功能plyr
將無法正常工作。
如何在我的腳本中包含一個檢查是否附加了dplyr
的函數,如果是,則將其分離?
我知道如何通過detach("package:dplyr", unload = TRUE)
分離包detach("package:dplyr", unload = TRUE)
。 我不知道的是如何檢查是否附加了包裹。
我同意最好的方法是使用dplyr::rename
和plyr::rename
來明確地調用你想要的函數。
但是,如果您確實想要檢查是否附加了包,然后再使用它進行分離
if("plyr" %in% (.packages())){
detach("package:plyr", unload=TRUE)
}
值得注意的是,包本身會警告您按特定順序加載它們。 如果你加載dplyr,那么plyr,你會得到一個警告:
你在dplyr之后加載了plyr - 這可能會導致問題。 如果你需要plyr和dplyr的功能,請首先加載plyr,然后加載dplyr:library(plyr); 庫(dplyr)
我的理解是,如果dplyr的函數被plyr棄用,那么dplyr效果不好,但是由於dplyr從plyr中棄用的函數是有效更新的,所以它們應該很好地運行。 因此,請確保以正確的順序加載它們:
library(plyr)
library(dplyr)
編輯:我重新閱讀你的問題,你的問題是dplyr對plyr函數的棄用,所以我的觀點與你不太相關,對不起。 我會把它留在這里以防其他人需要這些信息,因為它引起了我一段時間的問題:P
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.