如何在闪亮或闪亮的仪表盘应用程序中管理我的R代码? [英] How to manage my R code in a shiny or shinydashboard app?
本文介绍了如何在闪亮或闪亮的仪表盘应用程序中管理我的R代码?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我做了一个shinydashboard应用程序,它现在有相当多的代码行,我想知道是否有方法将代码拆分成不同的代码。R文件。我看到了一个类似的问题here,但答案没有帮助(特别是它没有提到应用程序服务器部分的代码)。
对于UI部分,我创建了名为header
、sidebar
和body
的函数,然后我只编写
ui <- dashboardPage(header(), sidebar(), body())
它工作得很好,如果header
、sidebar
和body
函数需要参数,它仍然可以工作。
对于服务器部分,我不认为可以采用类似的策略。我想知道是否可以编写"本地"服务器功能(例如,每个菜单项一个),然后将其重新统一为一个中央服务器功能。
你认为这样的事情可行吗?更广泛地说,感谢您的建议和想法,它们可以使我的代码更易于管理。
推荐答案
服务器端:
服务器.R:
library(shiny)
source('sub_server_functions.R')
function(input, output, session) {
subServerFunction1(input, output, session)
subServerFunction2(input, output, session)
subServerFunction3(input, output, session)
}
这对我很有效,您可能需要将更多变量传递给子服务器函数。但无功输出的范围似乎允许这一点。
subSERVER_Functions.R:
subserverfunction1 <- function(input, output, session) {
output$checkboxGroupInput1 <- renderUI({
checkboxGroupInput('test1','test1',choices = c(1,2,3))
})
}
subserverfunction2 <- function(input, output, session) {
output$checkboxGroupInput2 <- renderUI({
checkboxGroupInput('test2','test2',choices = c(1,2,3))
})
}
subserverfunction3 <- function(input, output, session) {
output$checkboxGroupInput3 <- renderUI({
checkboxGroupInput('test3','test3',choices = c(1,2,3))
})
}
这篇关于如何在闪亮或闪亮的仪表盘应用程序中管理我的R代码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文