studio - superponer graficas en r
AƱadir objetos al espacio de nombres de paquetes (3)
Me gustaría insertar una función dentro del espacio de nombres de un paquete para que pueda acceder a los objetos internos de ese paquete (usemos el paquete de estadísticas como ejemplo). He intentado usar
myfun <- function(x) print(x)
env = loadNamespace("stats")
assign("myfun", myfun , env)
Pero está bloqueado. Así que intenté desbloquear mi objeto
unlockBinding("myfun", env)
Como myfun no existe todavía, no puedo desbloquearlo.
Alguna ayuda ?
¿Por qué no configurar el entorno de su nueva función en el lugar correcto?
myfun <- function(x) print(x)
environment(myfun) <- as.environment("package:stats")
En la línea de la solución de @ Hadley, pero usando el entorno del espacio de nombres, ¿qué tal:
environment(myfun) <- asNamespace(''stats'')
Puede acceder a los objetos internos de un paquete utilizando el operador de dos puntos triples :::
. Observe, por ejemplo, as.roman
y utils:::.roman2numeric
. (Compare esto con utils::.roman2numeric
.) Esto podría ayudarlo a evitar tener que poner su función dentro del espacio de nombres.
También es posible que desee ver dont.lockBindings
en el paquete mvbutils
, que impide que los espacios de nombres se mvbutils
.