如何在闪亮或闪亮的仪表盘应用程序中管理我的R代码? [英] How to manage my R code in a shiny or shinydashboard app?

查看:0
本文介绍了如何在闪亮或闪亮的仪表盘应用程序中管理我的R代码?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我做了一个shinydashboard应用程序,它现在有相当多的代码行,我想知道是否有方法将代码拆分成不同的代码。R文件。我看到了一个类似的问题here,但答案没有帮助(特别是它没有提到应用程序服务器部分的代码)。

对于UI部分,我创建了名为headersidebarbody的函数,然后我只编写

ui <- dashboardPage(header(), sidebar(), body())

它工作得很好,如果headersidebarbody函数需要参数,它仍然可以工作。

对于服务器部分,我不认为可以采用类似的策略。我想知道是否可以编写"本地"服务器功能(例如,每个菜单项一个),然后将其重新统一为一个中央服务器功能。

你认为这样的事情可行吗?更广泛地说,感谢您的建议和想法,它们可以使我的代码更易于管理。

推荐答案

服务器端:

服务器.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆