[英]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.