R中具有相同名称的两个函数

Pen*_*eng 7 r

可能重复:
R
R中的掩码函数:掩码函数
函数命名冲突

如果我有两个包:A和B.假设有funfun一个在A中命名的函数,也有funfun在B中命名的函数 .当我加载A和B时,如何使用第一个funfun?

require(A)
require(B)
Run Code Online (Sandbox Code Playgroud)

如果我想funfun在A中使用,我该怎么写呢?

Pau*_*tra 10

您可以明确地引用这样的包和函数组合:

A::funfun
B::funfun
Run Code Online (Sandbox Code Playgroud)

在特殊情况下,您可能必须引用未在命名空间中导出的函数,在这种情况下您需要使用:

A:::funfun
B:::funfun
Run Code Online (Sandbox Code Playgroud)

(但这很不寻常,并且由于未导出的函数不构成包API的一部分,因此这些函数可能会在后续版本的包中发生更改而不会发出警告.)

  • +1严格来说,`:::`允许访问未在包命名空间中导出的函数 - 这不是大多数用户应该做的事情.因为我认为使用`::`更合适我编辑了答案. (3认同)
  • 如果导出该函数,您可能只需要使用`::`. (2认同)