假设有一个方法(比如说“sample()”)并且它存在于多个包中(比如说在“base”和“arules”包中)。现在,如果我调用sample(),则将调用哪个程序包,它将程序包称为“基础”程序包还是“arules”程序包,它又如何决定调用哪个程序包?
最佳答案
它选择哪个首先出现在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
参数进行更改),并在加载其他软件包时向下移动。关于r - R如何处理存在于多个包中的方法的冲突?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26232606/