2014-10-28 42 views
2

我server.R文件的開頭:對象不認可,除非手動創建

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

shinyServer(function(input, output) {}) 

如果我手動執行兩個輔助腳本,然後根據需要runApp()作品。但是,如果我從清除環境開始,然後允許source()命令運行腳本,那麼找不到在0-Prepare-Inputs.R中創建的兩個對象。出現錯誤這樣:

> shiny::runApp() 

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

sTableTypes被以下面的方式內0-Prepare-Inputs.R產生:

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

運行僅此行允許runApp()才能正常工作。

我需要解決這個問題才能使用ShinyApps.io。

事情我已經試過這不起作用:

  • 改變本地參數source()
  • 用所有源文件行替換source()命令。
  • 在腳本文件中調用的函數中創建sTableTypes
  • sTableTypes的創建包裝在一個被稱爲反應對象的函數中。
  • sTableTypes另存爲rObject並加載到源腳本和server.R的頂部。
  • 使用超級賦值保存sTableTypes。使用assign()並指定envir = .GlobalEnv
  • 運行腳本,節約使用save.image()環境和加載使用load(..., envir = .GlobalEnv)

所有封裝均高達每update.packages()日的環境,我目前運行v 3.1.1版。

+1

'sTableTypes'在'server.r'或'ui.r'中使用或者兩者兼而有之? – 2014-10-28 20:06:15

+0

哦!它用在兩者中,所以我必須在兩者中都使用它。現在工作。謝謝,約翰保羅。 – 2014-10-28 20:18:53

+0

剛發佈了另一個建議作爲答案 – 2014-10-28 20:22:31

回答

3

根據您的意見,我的建議是源文件在global.r。您可以在與您的ui.rserver.r文件相同的目錄中創建該文件。此文件中的任何內容都可以通過ui和服務器進行訪問。