R - 如何识别功能的哪个版本(包)是活动/附加的?

Posted

技术标签:

【中文标题】R - 如何识别功能的哪个版本(包)是活动/附加的?【英文标题】:R - how to identify which version (package) of a function is active/attached? 【发布时间】:2019-09-04 10:32:59 【问题描述】:

当我有多个包含一个函数的包时,如果我调用它(没有明确命名包),我如何确认调用了哪个包的函数版本? 我看过How to know to which package a particular function belongs to in R prior to package loading?

并缩小(我的特殊问题是“arima”)嫌疑人使用

help.search('arima', fields=c('name'), ignore.case=FALSE, agrep=FALSE)

在我的情况下,这会返回“stats”和“TSA”作为唯一可能的罪魁祸首,但这仍然不能告诉我哪个是活跃的。 系统显然知道,否则我们在调用函数时必须明确。但是我们如何获得这些信息呢?

【问题讨论】:

How to find out which package version is loaded in R?的可能重复 不,我不是在寻找包版本,我在寻找包含特定功能的已加载包的列表,特别是,哪个正在屏蔽其他功能。 @H_1 的答案(使用 "conflicts(detail=T") 是我正在寻找的通用版本,尽管能够向该命令添加特定函数以获得更有针对性的结果会很好。跨度> 【参考方案1】:

您可以使用conflicts(detail = TRUE) 找出哪些函数存在冲突(被屏蔽)。这将按照 search() 路径的顺序返回冲突的包/函数的命名列表,这是它们将被调用的顺序。

例如,我们可以加载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

【讨论】:

以上是关于R - 如何识别功能的哪个版本(包)是活动/附加的?的主要内容,如果未能解决你的问题,请参考以下文章

活动包缺少附加功能,即使它们应始终添加到 newIntance 方法中

ABBYY 9,10,11哪个版本好用?求破解版安装包和破解安装方法 发到QQ:328765871

r语言需要下载啥软件

如何使用来自小部件的不同附加功能打开相同的活动

origin2021与r语言哪个版本匹配

如何将Gson附加功能添加到Android项目中?