【问题标题】:R shiny does not display datatableR闪亮不显示数据表
【发布时间】:2014-05-13 21:31:20
【问题描述】:

我正在制作一个闪亮的应用程序,它显示带有数据库查询结果的数据表。 我使用内部包来检索数据,我确信它可以正常工作。

当我想显示其中一个 db 的数据表时,我没有问题,但是当我想显示另一个时,表根本不会出现。

我使用响应函数来检索数据并使用 renderDataTable() 来显示它。代码如下:

shinyServer(function(input, output) {
    dataset <- reactive({
    if(input$experiment!=""&!is.null(input$experiment)){
      if(input$db=="db1"){
        data <- querydb1(experimentID=input$experiment)
      }
      if(input$db=="db2"){
        data <- querydb2(experimentID=input$experiment)
      }
    }
  })



  # output table
  output$data <- renderDataTable({
    dataset()
  })
})

【问题讨论】:

  • 如果您从 querydb.. 语句之前删除 data&lt;- 有帮助吗?

标签: r shiny shiny-reactivity


【解决方案1】:

你的响应式需要返回一些东西。试试这个:

if(input$experiment!=""&!is.null(input$experiment)){
  if(input$db=="db1"){
    data <- querydb1(experimentID=input$experiment)
  }
  if(input$db=="db2"){
    data <- querydb2(experimentID=input$experiment)
  }
  return(data)
}

【讨论】:

  • 感谢这个成功了,还是不明白为什么 db2 有效而 bd1 无效
  • 默认情况下,R 返回表达式中最后评估的语句。所以你在技术上不需要最后调用return,你可以引用变量data。由于 db2 是最后评估的块,如果条件通过,则返回它。 db1data 从来都不是最后一个评估的语句,所以它永远不会被返回。
猜你喜欢
  • 2016-12-14
  • 2014-09-04
  • 2018-12-21
  • 1970-01-01
  • 2021-02-13
  • 2017-08-08
  • 2018-07-14
  • 2021-09-02
  • 2018-03-23
相关资源
最近更新 更多