/ / Obiekty nie są rozpoznawane, chyba że zostały utworzone ręcznie - r, błyszczące

Obiekty nie są rozpoznawane, chyba że zostały utworzone ręcznie - r, błyszczące

Mój plik server.R rozpoczyna się:

library(shiny)
source("scripts/0-Prepare-Inputs.R")
source("scripts/1-Analysis-Functions.R")

shinyServer(function(input, output) {})

Jeśli ręcznie wykonam dwa skrypty pomocnicze, to runApp() działa zgodnie z oczekiwaniami. Jeśli jednak zacznę od wyczyszczenia środowiska, a następnie zezwalając na source() polecenia uruchamiające skrypty, a następnie dwa obiekty utworzone w 0-Prepare-Inputs.R Nie znaleziono. Błąd pojawia się jako taki:

> shiny::runApp()

Listening on http://127.0.0.1:5591
Error in lapply(obj, function(val) { : object "sTableTypes" not found

sTableTypes jest generowany w następujący sposób wewnątrz 0-Prepare-Inputs.R:

sTableTypes <- list(races = c("All", "White", "Black", "Hispanic", "NHWhite", "NHBlack"),
genders = c("Total", "Male", "Female"))

Działa tylko ta linia runApp() aby działać poprawnie.

Muszę rozwiązać ten problem, aby skorzystać z ShinyApps.io.

Rzeczy, których próbowałem, a które nie działają:

  • Zmiana lokalnego parametru w source().
  • Zastępowanie source() polecenie ze wszystkimi liniami plików źródłowych.
  • Zawijanie tworzenia sTableTypes w funkcji, która jest wywoływana w pliku skryptu.
  • Zawijanie tworzenia sTableTypes w funkcji, która jest nazywana obiektem reaktywnym.
  • Oszczędność sTableTypes jako rObject i ładowanie w skryptach źródłowych i na szczycie serwera.R.
  • Oszczędność sTableTypes używając superadresu.
  • Oszczędność sTableTypes za pomocą assign() i określanie envir = .GlobalEnv.
  • Uruchamianie skryptów, zapisywanie środowiska za pomocą save.image() i ładowanie środowiska za pomocą load(..., envir = .GlobalEnv)

Wszystkie pakiety są aktualne na update.packages(), a ja aktualnie używam wersji R 3.1.1.

Odpowiedzi:

3 dla odpowiedzi № 1

Na podstawie Twojego komentarza moją sugestią jest zesłanie tego pliku global.r. Możesz po prostu utworzyć ten plik w tym samym katalogu co twój ui.r i server.r pliki. Cokolwiek w tym pliku będzie dostępne zarówno dla interfejsu użytkownika, jak i serwera.