2015-06-04 18 views
5

ich eine glänzende Anwendung habe, in dem der server.R wie unten aussieht:R Shiny list2env

shinyServer(function(input, output,session) { 
    temp<-reactive({ 
      obj1<-read.csv(.....) 
      v1<-c("obj2") 
      lst<-lapply(v1,read.csv(....) 
      list2env(lst) 
      ... 
     }) 

Ich bin ein Objekt direkt in der reaktiven Funktion zu schaffen genannt obj1 und auch obj2 list2env mit zu schaffen. Sowohl obj1 als auch obj2 befinden sich nicht in derselben Umgebung. In welcher Umgebung bin ich, wenn ich in einer reaktiven Funktion bin? Ich möchte auch nicht .GlobalEnv in list2env verwenden, da dieses Objekt über alle Benutzersitzungen verfügbar wäre. Wie mache ich list2env erstellen obj2 in der gleichen Umgebung wie obj1?

+0

perfekt - das funktionierte, Dank ! – Sri

Antwort

6

Die Funktion environment() gibt die aktuelle Umgebung zurück. Wenn Sie es also innerhalb einer Funktion verwenden, wird die Umgebung der Funktion zurückgegeben. Sie können dann mit

list2env(lst, envir=environment()) 

(Obwohl persönlich fast immer finde ich es einfacher zu halten Daten in einer Liste anstatt erstellen eine Reihe von separaten Variablen in der Umgebung.) Verwenden, die