Cómo desenmascarar a una función en R, debido a las colisiones de nombres en searchpath
-
15-09-2020 - |
Pregunta
Cuando me carga el paquete de debug
para depurar un script con zoo
objetos, tengo problemas:la función index
de zoo
tengo enmascarada por debug
paquete.¿Cómo puedo desenmascarar index
?En general, ¿cómo lidiar con estos nombre chocar problemas?Acabamos de hacer no uso debug
paquete con `zoo'?
Solución
Símbolos exportados son siempre identificables con la ::
operador:
zoo::index
Funciones ocultas que no está declarado en el espacio de nombres todavía se puede acceder mediante :::
(triple-colon), y el ejemplo sería
zoo:::.onLoad
que se puede ver incluso a pesar de que no se exporta.
Otros consejos
Puede descargar el paquete que ha enmascarado funciones y, a continuación, vuelva a cargarlo.Se va a recuperar de la prioridad en el searchpath:
unloadNamespace("zoo")
library("zoo")
En el futuro, si desea cargar un paquete, mientras que la prevención de enmascarar otras funciones, se puede especificar su posición en la ruta de búsqueda con un arbitrario gran número:
library("debug", pos = .Machine$integer.max)
Su único enmascarado pero no enmascara en el zoológico de modo que cuando un zoológico función intenta utilizar el índice todavía habrá que encontrar su propio índice primero.
el zoológico también tiene un tiempo.zoo método así que si z es un zoológico objeto se puede utilizar el tiempo(z) en lugar de índice(z).
Finalmente, siempre se puede hacer referencia a zoo::índice de asegurarse de que usted obtenga el uno en el zoológico.