Scoping und Funktionen in R 2.11.1: Was läuft falsch?

Diese Frage stammt aus einer Reihe anderer Fragen, die sich alle im Wesentlichen mit demselben Problem befassen. Aus irgendeinem seltsamen Grund schlägt die Verwendung einer Funktion in einer anderen Funktion manchmal in dem Sinne fehl, dass Variablen, die in der lokalen Umgebung der ersten Funktion definiert sind, nicht in der zweiten Funktion gefunden werden.

Das klassische Muster im Pseudocode:

ff <- function(x){
    y <- some_value
    some_function(y)
}
ff(x)

Error in eval (expr, envir, enclos): Objekt 'y' nicht gefunden

Zunächst dachte ich, dass es etwas mit S4-Methoden und dem darin enthaltenen Scoping zu tun hat, aber es passiert auch mit anderen Funktionen. Ich hatte eine gewisse Interaktion mit dem R-Entwicklungsteam, aber alles, was sie taten, war, mich auf die Website mit den Fehlerberichten zu leiten (was nicht die einladendste ist, muss ich sagen). Ich habe nie eine Rückmeldung bekommen.

Da das Problem immer wieder auftaucht, frage ich mich, ob es dafür eine logische Erklärung gibt. Ist es ein häufiger Fehler, der in all diesen Fällen gemacht wurde, und wenn ja, welcher? Oder ist es wirklich ein Bug?

Einige dieser Fragen:

Verwenden von Funktionen und UmgebungenR (statistischer) Scoping-Fehler mit transformBy (), Teil des doBy-Pakets.Wie verwende ich acast (reshape2) innerhalb einer Funktion in R? Warum kann ich einen Datensatz nicht an eine Funktion übergeben?Werte werden nicht in die nächste lokale Umgebung kopiert

PS: Ich kenne die R-Entwicklerliste, falls Sie sich gefragt haben ...

Antworten auf die Frage(8)

Ihre Antwort auf die Frage