2012-07-27 13 views
7

Duplicar posibles:
Masked functions in R
R: Masked Functions
function naming conflictsdos funciones con el mismo nombre en I

Si tengo dos paquetes: A y B. decir que no hay función llamada funfun en A y también hay una función llamada funfun en B. Cuando cargo A y B, ¿cómo uso el primer funfun?

require(A) 
require(B) 

Si quiero usar funfun en A, ¿qué escribo esto?

+1

Algunos casi duplicados: http://stackoverflow.com/questions/2842120/masked-functions-in-r, http://stackoverflow.com/questions/4879377/r-masked- funciones, http://stackoverflow.com/questions/9337716/how-do-i-use-functions-in-one-r-package-masked-by-another-package – Andrie

Respuesta

10

Se puede hacer referencia explictily a un paquete y la función de combinación de esta manera:

A::funfun 
B::funfun 

En circunstancias inusuales, puede que tenga que referirse a las funciones que no se exportan en el espacio de nombres, en cuyo caso se necesitará utilizar:

A:::funfun 
B:::funfun 

(Pero esto sería inusual, ya que las funciones y no exportada no forman parte de la API de paquete, estas funciones podría cambiar sin previo aviso en submarinos equent releases de un paquete.)

+2

Si se exporta la función, es posible que solo necesite usa '::'. –

+3

+1 Estrictamente hablando, ':::' permite el acceso a funciones que no se exportan en el espacio de nombres del paquete; esto no es algo que la mayoría de los usuarios deban hacer. Como creo que es más apropiado usar '::', he editado la respuesta. – Andrie

Cuestiones relacionadas