相同功能名称:dplyr与其他软件包(如基因组范围、IRanges)之间可能存在冲突

相同功能名称:dplyr与其他软件包(如基因组范围、IRanges)之间可能存在冲突,r,namespaces,dplyr,R,Namespaces,Dplyr,关于dplyr,我有一个关于名称空间的简单问题 dplyr中的某些函数在其他软件包中具有相同的名称,如GenomicRanges,IRanges。如果我加载的包依赖于一个被dplyr屏蔽的函数,我怎么知道我的代码工作正常 举个例子, library(DESeq2) 输出省略 library(dplyr) 正在附加包:“dplyr” 以下对象已从“包:范围”中屏蔽: intersect, setdiff, union collapse, desc, intersect, setdiff, u

关于dplyr,我有一个关于名称空间的简单问题

dplyr中的某些函数在其他软件包中具有相同的名称,如GenomicRangesIRanges。如果我加载的包依赖于一个被dplyr屏蔽的函数,我怎么知道我的代码工作正常

举个例子,

library(DESeq2)
输出省略

library(dplyr)
正在附加包:“dplyr”

以下对象已从“包:范围”中屏蔽:

intersect, setdiff, union
collapse, desc, intersect, setdiff, union
以下对象已从“包:IRanges”屏蔽:

intersect, setdiff, union
collapse, desc, intersect, setdiff, union
以下对象已从“包:BioGenerics”中屏蔽:

intersect, setdiff, union
以下对象已从“package:stats”屏蔽:

filter, lag
以下对象已从“package:base”屏蔽:

intersect, setdiff, setequal, union
如果现在我使用函数名collapse,它将在dplyr中调用函数

我可以明确地使用IRanges::collapse,但是,每次都这样做会很乏味。如果我只是盲目地使用collapse,R是否知道根据数据使用哪个collapse

此外,如果我以后根据IRanges中的collapse加载一个包,该包知道在哪里找到正确的函数来使用吗

有人能给我介绍一下这个话题吗


谢谢。

谢谢,似乎没有一个简单的答案。看起来大多数基函数,特别是dplyr中的基函数,都被修改为S3方法,只需像正常情况一样调用基函数(例如
dplyr:::union.default
),因此它们可以正常工作。我不认为使用与公共基函数同名的函数是一个好主意,但看起来hadley保留了完整的功能。我不能评论其他的软件包hanks@rawr,我会小心的。