Scope in generischen Funktionen R

8

Wenn Sie eine Variable innerhalb einer generischen Funktion definieren, steht sie der Methode zur Verfügung. Zum Beispiel:

%Vor%

Wenn die von Ihnen definierte Variable jedoch den gleichen Namen wie der Funktionsparameter hat, geschieht dies nicht. Es scheint, dass R diese Variable vor dem Aufruf der Methode löscht:

%Vor%

Könnte jemand genau erklären, was hier vor sich geht?

    
Carlos Cinelli 09.01.2015, 17:04
quelle

1 Antwort

4

Die folgenden Kommentare aus der C-Quelldatei, die do_usemethod definiert deutet zumindest an, was vor sich geht. Siehe insbesondere den zweiten Satz des zweiten aufgezählten Artikels.

Im Grunde sieht es so aus (aufgrund der dummen Anwendung der Regel in diesem zweiten Punkt), der Wert von x wird nicht kopiert, weil der C-Code prüft, ob er zu den Formals gehört, sieht, dass es so ist Ausgeschlossen aus der Liste der Variablen, die in die Evaluierungsumgebung der Methode eingefügt wurden.

%Vor%     
Josh O'Brien 09.01.2015, 18:20
quelle

Tags und Links