Lassen Sie uns wir diese Funktion erklären soll:Variablen automatisch in R-Funktion Umgebung Injizieren
f <- function(x) u + x
jetzt, wenn ich f(10)
R rufen rekursiv für die übergeordnete Umgebung für einen Wert von u
aussehen wird, bis er die globale Umwelt erreicht, wenn Ein Wert wird gefunden u + 10
wird zurückgegeben, sonst erhalten wir einen Fehler. So weit, ist es gut.
Jetzt haben wir einen Pool von wo wir die unbekannten Werte innerhalb des Körpers von f
, wie pool <- list(u = 10)
oder eine Umgebungsvariable mit u
setzen möchten.
Wie würden Sie den Wert u
einer generischen Funktion f
injizieren? Können Sie eine Funktion schreiben, die die Variablen eingibt, die in pool
innerhalb f
definiert sind? Mit anderen Worten, können wir R in die Richtung zeigen, in der nach fehlenden Variablen gesucht wird, und stattdessen rekursiv in der übergeordneten Umgebung nachsehen?
EDIT: Ich weiß, dass ich das f <- function(x) pool[["u"]] + x
natürlich tun kann, aber ich suche nach dem oben beschriebenen Verhalten.
BEARBEITEN: Der Anwendungsfall ist der folgende: Ich baue eine Bibliothek, die Benutzern ermöglicht, die Funktion zu konfigurieren, die sie optimieren möchten, und ich möchte, dass bestimmte Variablen verwendet werden, die bereits beim Laden der Bibliothek berechnet werden (Lösungen bestimmter Differentialgleichungen) und kombiniere sie, wie sie es wünschen. Deshalb möchte ich den Prozess so transparent wie möglich für sie machen und sie einen Variablenwert u
anstelle von in den Körper der Funktion verwenden, wenn möglich.
Sie würden das Objekt aufrufen, wo "u" gespeichert ist, nein? f <- function (x) pool [[""]] + x – InfiniteFlashChess
Fragen Sie nach der gesamten Umgebung für Sie oder ob ein Objekt Sie enthält? – InfiniteFlashChess
Siehe aktualisierte Frage – Batato