R如何处理多个包中存在的方法的冲突?

时间:2014-10-07 09:16:57

标签: r

假设有一种方法(让我们说"样本()")并且它存在于多个包中(让我们在包中说出" base& #34;和#34; arules")。现在,如果我调用sample()调用哪个包,它是否会调用包" base"或者" arules"以及它如何决定调用哪一个?

2 个答案:

答案 0 :(得分:8)

它选择哪一个位于search路径的第一位:

search()
 [1] ".GlobalEnv"        "package:arules"    "package:Matrix"   
 [4] "package:stats"     "package:graphics"  "package:grDevices"
 [7] "package:utils"     "package:datasets"  "package:methods"  
[10] "Autoloads"         "package:base"   

所以这将是arules版本。这是一种S4方法,实际上可以调用基本版本。请注意,base始终位于搜索路径的最后,并且全局环境始终是第一位的。通常,软件包在第二位加载(可以使用pos参数更改为library),并在其他软件加载时向下移动。

答案 1 :(得分:4)

我用这个:

base::sample()
arules::sample()