Inkonsistenz mit der globalen Umgebung von R in einem Funktionsaufruf

9

Ich habe mit R herumgespielt und einige Inkonsistenzen mit den globalen Umgebungsumgebungsfunktionsaufrufen bemerkt, die sich von der tatsächlichen globalen Umgebung unterschieden.

Betrachten Sie Folgendes:

%Vor%

Innerhalb des Funktionsaufrufs gibt as.environment(-1) eine Umgebung zurück, die angibt, dass sie <environment: R_GlobalEnv> ist, aber wenn sie in dieser Umgebung environmentName aufruft, ist ihr Name ein leeres Zeichen. Darüber hinaus unterscheiden sich die Inhalte davon von denen in der echten globalen Umgebung. Was genau passiert hier?

Ich bemerkte zuerst den Fehler mit mget innerhalb eines Aufrufs, da eine global definierte Variable nicht gefunden werden konnte. Dies scheint kontraintuitiv zu sein, da R normalerweise bei der Referenzierung einer Variablen innerhalb einer Funktion in den umgebenden Umgebungen nach oben sucht, bis eine Definition für eine Variable einschließlich der globalen Umgebung gefunden wird.

    
Jon Claus 03.03.2014, 16:10
quelle

1 Antwort

4

Dies ist eine Folge der faulen Bewertung:

%Vor%     
hadley 03.03.2014 16:32
quelle

Tags und Links