2015-06-04 12 views
5

mam błyszczącą aplikację, w której server.R wygląda jak poniżej:R Shiny list2env

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

tworzę obiekt bezpośrednio w reaktywnej funkcji zwanej obj1 a także tworzenie obj2 użyciu list2env. Zarówno obj1, jak i obj2 nie znajdują się w tym samym środowisku. Jakie jest środowisko, w którym jestem, gdy jestem w funkcji reaktywnej? Ponadto, nie chcę używać .GlobalEnv w list2env, ponieważ spowodowałoby to, że obiekt ten byłby dostępny dla wszystkich sesji użytkownika. Jak utworzyć list2env utworzyć obj2 w tym samym środowisku, co obj1?

+0

doskonały - że pracował, Dzięki ! – Sri

Odpowiedz

6

Funkcja environment() zwróci bieżące środowisko. Zatem jeśli użyjesz go wewnątrz funkcji, zwróci to środowisko funkcji. Następnie można użyć tego z

list2env(lst, envir=environment()) 

(choć osobiście prawie zawsze łatwiej zachować dane w liście zamiast tworzyć kilka oddzielnych zmiennych w środowisku.)

Powiązane problemy