Definieren von globalen Variablen mit der Funktion argument in R

Ich versuche zu schreiben, eine Funktion in R, die Tropfen Spalten vom data-frame und gibt die neuen Daten mit einem angegebenen Namen als argument der Funktion:

drop <- function(my.data,col,new.data) {
new.data <<- my.data[,-col] 
return(new.data)
}

So, in obigem Beispiel möchte ich eine neue Daten-frame zu existieren, nachdem die Funktion aufgerufen wird, die mit dem Namen was der Benutzer eingibt, wie das Dritte argument.

Mir beim Aufruf der Funktion die richtigen Daten-frame zurückgegeben wird, aber wenn ich dann versuche, die neue Daten-frame im globalen Umfeld bekomme ich object not found. Ich dachte, dass durch die Verwendung der <<- Betreiber ich war die Definition new.data weltweit.

Kann mir jemand helfen zu verstehen was Los ist und ob es einen Weg gibt, dies zu erreichen?

Fand ich diese und diese schien verwandt, aber weder wirklich meine Frage beantwortet.

  • Sie konnte assign(new.data, mydata[,-col], envir = .GlobalEnv) obwohl ich würde empfehlen, gegen diese ganze Idee
  • Es sieht aus wie Ihre Funktion erfordert mehr Tipparbeit, als explizit tun, damit der Anruf direkt. Was ist der Punkt? Auch die Zuordnung von Dingen über <<- innerhalb einer Funktion ist schrecklich Praxis.
  • Sie versuchen zu schreiben eine Funktion mit einem Nebeneffekt. R ist eine funktionale Sprache und funktioniert daher sollte keine Nebenwirkungen haben.
  • ah gut zu wissen, dass <<- sollte nicht verwendet werden, die in einer Funktion - danke. Meine eigentliche Funktion ist mehr als das, ich war nur mit diesem als ein einfaches Beispiel. Es hat sparen eine Menge Tipparbeit.
InformationsquelleAutor cerpintaxt | 2014-03-14
Schreibe einen Kommentar