renderTable中的“空数据消息”

时间:2014-03-26 03:07:45

标签: r shiny

我使用renderTable来显示一些数据。但是,有时数据表是空的,在这种情况下我想打印“无数据显示”或类似的东西。 renderTable的默认设置是不显示空数据。可以改变吗?如何?

1 个答案:

答案 0 :(得分:4)

您可以将条件用于renderUi以呈现消息或“tableOutput”(您无法直接呈现表格)

datas <- data.frame()

shiny::runApp(list(
  ui = pageWithSidebar(
    headerPanel("Example"),
    sidebarPanel(
      selectInput("dataset", "Dataset", choices = c("iris", "datas"))
    ),
    mainPanel(
      uiOutput("ui")
    )
  ),
  server = function(input, output, session) {

    datasetInput <- reactive({
      switch(input$dataset,
             "iris" = iris,
             "datas" = datas)
    })

    output$ui <- renderUI({
      if(nrow(datasetInput()) == 0)
        return("No data to show")

      tableOutput("table")
    })

    output$table <- renderTable({
      head(datasetInput())
    })
  }
))