¿Cuál es la manera de mostrar el nombre del entorno dentro de la función como funciones incorporadas? Por ejemplo, cuando escribo la función: mean disponible en el paquete base, puedo ver el entorno como "namespace: base".R: Funciones: ¿muestra el nombre del entorno en lugar de la dirección de memoria de ese entorno?
mean
function (x, ...)
UseMethod("mean")
<bytecode: 0x0547f17c>
**<environment: namespace:base>**
Sin embargo, cuando hay que adjuntar una función para el medio ambiente de nueva creación, aquí para acceder a los valores de la variable libre (z) dentro de la función (f), que reside de forma automática en el entorno .GlobalEnv y el nombre de el entorno no se muestra dentro de la función, pero se ve la dirección de memoria "0x051abd60" del entorno (e1).
e1 <- new.env()
e1$z <- 10
f <- function(x) {
x + z
}
environment(f) = e1
f
function(x) {
x + z
}
**<environment: 0x051abd60>**
¿Qué te parece este comportamiento? ¿Por qué no obtengo el nombre de mi entorno dentro de la función como funciones incorporadas de R y también las funciones disponibles de varios paquetes R? ¿Hay alguna diferencia entre la estructura de datos del entorno y el entorno .GlobalEnv disponible de la búsqueda()
Cualquier sugerencia sobre la motivación detrás de este comportamiento sería muy apreciada.
Gracias
He intentado añadir un nombre para el medio ambiente mediante el environmentName (e1) <- "E1", pero tiene un error como "no se pudo encontrar la función environmentName ...". Además, cada entorno tiene un perfil único para ellos. Todavía no he trabajado con paquetes, pero es interesante saber el comportamiento de los espacios de nombres aplicados a las variables y sus estructuras de datos en R – Sathish
¿Ha adivinado algún propósito para la función environmentName()? – Sathish