[英]R - how to identify which version (package) of a function is active/attached?
当我有多个包含一个函数的程序包时,如果我调用该函数,该如何确认哪个程序包的版本被调用(没有明确命名该程序包)? 我看过如何在加载包之前知道R中特定功能属于哪个包?
并缩小了嫌疑人使用的范围(我的特别问题是“ arima”)
help.search('arima', fields=c('name'), ignore.case=FALSE, agrep=FALSE)
就我而言,这将返回“ stats”和“ TSA”作为唯一可能的罪魁祸首,但这仍然无法告诉我哪个处于活动状态。 系统显然知道,或者无论何时调用函数,我们都必须明确。 但是我们如何获得这些信息?
您可以使用conflicts(detail = TRUE)
找出哪些功能发生冲突(被屏蔽conflicts(detail = TRUE)
。 这将以search()
路径的顺序返回冲突的包/函数的命名列表,该顺序是它们被调用的顺序。
例如,我们可以加载dplyr
,该dplyr
加载一些与base冲突的函数。
library(dplyr)
# Create data.frame of conflicts and clean up.
conf <- conflicts(detail = TRUE)
conf.df <- data.frame(do.call(rbind, Map(cbind, conf, names(conf))))
names(conf.df) <- c("fn", "package")
conf.df$package <- sub("package:", "", conf.df$package)
# Aggregate packages by function - first package is the default when called.
aggregate(package ~ fn, conf.df, toString)
fn package
1 body<- methods, base
2 filter dplyr, stats
3 intersect dplyr, base
4 kronecker methods, base
5 lag dplyr, stats
6 setdiff dplyr, base
7 setequal dplyr, base
8 union dplyr, base
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.