如果已加载,则分离 R 中的特定包
detach specific package in R if loaded
我在我的代码中遇到了一些 plyr
与 dplyr
的问题,所以 我想分离 plyr
包以防它被之前加载。
这就是我的进展,
ifelse(sum(grepl("package:plyr",search()))==0,
"plyr not loaded",
detach("package:plyr"))
但是这段代码抛出一个
Error in ifelse(sum(grepl("package:plyr", search())) == 0,
"plyr not loaded", :
substitution has length 0
Additional warning:
In rep(no, length.out = length(ans)) :
'x' is NULL so the result will be NULL
这是一个解决方案:
if(any(grepl("package:plyr", search()))) detach("package:plyr") else message("plyr not loaded")
## plyr not loaded
library("plyr")
## if(any(grepl("package:plyr", search()))) detach("package:plyr") else message("plyr not loaded")
通常您希望使用 if
和 else
进行程序控制,而 ifelse()
仅用于矢量化逻辑操作,例如数据重新编码。
我在我的代码中遇到了一些 plyr
与 dplyr
的问题,所以 我想分离 plyr
包以防它被之前加载。
这就是我的进展,
ifelse(sum(grepl("package:plyr",search()))==0,
"plyr not loaded",
detach("package:plyr"))
但是这段代码抛出一个
Error in ifelse(sum(grepl("package:plyr", search())) == 0,
"plyr not loaded", :
substitution has length 0
Additional warning:
In rep(no, length.out = length(ans)) :
'x' is NULL so the result will be NULL
这是一个解决方案:
if(any(grepl("package:plyr", search()))) detach("package:plyr") else message("plyr not loaded")
## plyr not loaded
library("plyr")
## if(any(grepl("package:plyr", search()))) detach("package:plyr") else message("plyr not loaded")
通常您希望使用 if
和 else
进行程序控制,而 ifelse()
仅用于矢量化逻辑操作,例如数据重新编码。