记录闪亮的应用程序

时间:2015-07-08 22:33:29

标签: r shiny roxygen2

有没有办法为R闪亮的应用程序生成文档?

在没有文档的情况下维护一个闪亮的应用程序变得非常困难。

似乎所有测试/文档的生态系统都是为R包结构创建的。也许我们可以为闪亮的应用程序模拟/扩展此行为?

一个例子:

反应式表达式通常是R闪亮元素,可以包含复杂的数据结构。

   filtered_dat <- reactive({ 
      dx[ NAME == input$crr & TOU == input$tou & 
            PlotYear == input$year. & PlotMonth == input$season]
    })

为了提供更多上下文,我在这里使用R shiny构建完整的Web应用程序。所有业务逻辑都包含在一个独立的包中。

为了测试Ui,我认为它很复杂(例如可以使用Rselenium),但是从roxygen2注释生成doc只是解析。拥有这样的工具应该很容易。

2 个答案:

答案 0 :(得分:1)

这是一个很好的问题。你如何用Shiny创建一个复杂的清晰Web应用程序?我相信组织一个庞大的项目是Shiny架构的弱点。

首先,Shiny仅在一个html文档中创建一个Web。本文档分为几层,以开发正确管理图层所需的庞大应用程序。但是,这件事存在一个重大问题,你如何组织代码呢?

嗯,这里有不同的方法可以做到这一点。事实上,您可以应用不同的方法,如Joe Cheng:

就我而言,在一个庞大的项目中,我实现了MVC模式,但使其适应了Shiny体系结构。

答案 1 :(得分:1)

更新

添加shiny application

的示例

没有一个理想的解决方案,但这基本上就是我正在做的事情,以处理我的闪亮应用程序,以创建一个强大的,“文档化”的闪亮应用程序:

  • 创建一个包含所有逻辑的包。不要担心从包中调用输入/输出结构作为参数。还尝试在包中创建一些控件。例如,您可以拥有一些基本闪亮控件的内联版本。

典型的包将具有以下结构:

 R
     ui-view1.R
     ui-view2.R
     server-server1.R
     server-server2.R
     controls.R
  • 创建一个闪亮的应用程序,其结构以反映不同应用程序元素的方式。基本上为每个应用页面创建一个视图/服务器文件。您当然可以将闪亮的应用程序放在inst / ui下,或者将它放在一个单独的项目中。

这是一个例子:

 app 
     ui.R
     server.R
     global.R
     views
        view1.R
        view2.R
     servers
        server1.R
        server2.R
     init 
        global1.R
        gloabl2.R