2015-05-31 71 views
1

我很新shinyshinydashboard。我的第一個應用已經發展到一個規模,我想將它重構成片的暗示http://rstudio.github.io/shinydashboard/structure.html這裏:拆分大shinydashboard應用程序塊

dashboardPage(
    dashboardHeader(), 
    dashboardSidebar(), 
    dashboardBody() 
) 

它應該是一個相當簡單的任務。但是,我找不到任何有關如何將我的應用程序拆分爲多個文件的示例,我不確定最佳方式是什麼。

目前爲止我無法使用它:我嘗試在每個部分中調用source("myBody.R")

+0

你想要做的事情是有道理的,所以錯誤必須在細節中。請分享一個具體的代碼示例。 – nassimhddd

回答

1
  1. 的更多細節包括在您的主UI看看@ Shape在https://stackoverflow.com/a/33584292/4606130的策略。

server.R:

library(shiny) 
    source('sub_server_functions.R') 

    function(input, output, session) { 
     subServerFunction1(input, output, session) 
     subServerFunction2(input, output, session) 
     subServerFunction3(input, output, session) 
    } 

其他的想法是:

  • 把你的數據呼叫和常量在global.R這可以由你的ui和server.R文件共享。看看http://shiny.rstudio.com/articles/scoping.html

  • 看看新模塊方法到Shiny。我仍然在處理這個問題,但看起來很有希望合理化。見http://shiny.rstudio.com/articles/modules.html

  • 柔性儀表板的一個例子.Rmd文件後,這個看起來很瘦!

    --- 
    title: "screenR" 
    output: flexdashboard::flex_dashboard 
    runtime: shiny 
    --- 
    
    ```{r} 
    # include the module 
    source("screenrdata.R") 
    ``` 
    
    Charts 
    ====== 
    
    ### Screening Scatter 
    
    ```{r} 
    
    # call the module 
    xyUI("id1") 
    callModule(screenchart, "id1") 
    ```