2012-07-27 169 views
7

可能重复:
Masked functions in R
R: Masked Functions
function naming conflicts两个函数具有相同的名称中的R

如果我有两个包:A和B.假设有一个名为功能B中有funfun,B中也有函数funfun。当我加载A和B时,我该如何使用第一个funfun

require(A) 
require(B) 

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

+1

一些附近的重复项:http://stackoverflow.com/questions/2842120/masked-functions-in-r,http://stackoverflow.com/questions/4879377/r-masked-功能,http://stackoverflow.com/questions/9337716/how-do-i-use-functions-in-one-r-package-masked-by-another-package – Andrie 2012-07-27 08:40:40

回答

10

可以explictily指像这样的包装和功能组合:

A::funfun 
B::funfun 

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

A:::funfun 
B:::funfun 

(不过,这将是不寻常的,而且由于非导出函数不构成包API的一部分,这些功能可能会更改,恕不在潜艇警告通常会发布一个包)。

+2

如果功能导出,您可能只需要使用'::'。 – 2012-07-27 07:47:28

+3

+1严格来说,':::'允许访问不在包名称空间中导出的函数 - 这不是大多数用户应该做的事情。因为我认为使用'::'更合适,所以我编辑了答案。 – Andrie 2012-07-27 08:36:38

相关问题