Wie wird der Name der Umgebung innerhalb der Funktion als integrierte Funktionen angezeigt? Zum Beispiel, wenn ich die Funktion: mean im Basispaket verfügbar gebe, kann ich die Umgebung als "namespace: base" sehen.R: Funktionen - Anzeige des Umgebungsnamens anstelle der Speicheradresse dieser Umgebung?
mean
function (x, ...)
UseMethod("mean")
<bytecode: 0x0547f17c>
**<environment: namespace:base>**
Allerdings, wenn ich eine Funktion in die neu geschaffene Umgebung anhängen, hier die Werte für die freie Variable zuzugreifen (z) innerhalb der Funktion (f), es befindet sich automatisch in .GlobalEnv Umgebung und der Name Die Umgebung wird nicht in der Funktion angezeigt, aber die Speicheradresse "0x051abd60" der Umgebung (e1) wird angezeigt.
e1 <- new.env()
e1$z <- 10
f <- function(x) {
x + z
}
environment(f) = e1
f
function(x) {
x + z
}
**<environment: 0x051abd60>**
Warum sehe ich dieses Verhalten? Warum bekomme ich meinen Umgebungsnamen nicht innerhalb der Funktion als integrierte Funktionen von R und auch die Funktionen von verschiedenen R-Paketen? Gibt es einen Unterschied zwischen der Umgebungsdatenstruktur und der .GlobalEnv-Umgebung, die von search() verfügbar ist
Alle Hinweise auf die Motivation hinter diesem Verhalten würden sehr geschätzt.
Danke
Ich habe versucht, einen Namen für die Umwelt hinzuzufügen, um die environmentName (e1) mit <- "e1", bekam aber einen Fehler like "konnte die Funktion environmentName nicht finden ...". Außerdem hat jede Umgebung ein einzigartiges Profil für sie. Ich habe noch nicht mit Paketen gearbeitet, aber es ist interessant, das Verhalten von Namespaces zu kennen, die auf Variablen und ihre Datenstrukturen in R – Sathish
angewendet werden. Haben Sie irgendeinen Zweck für die Funktion environmentName() erraten? – Sathish