【问题标题】:Failure to display DataTable in RShiny App无法在 R Shiny App 中显示 DataTable
【发布时间】:2020-07-13 22:16:56
【问题描述】:

我希望为我的 Shiny 应用显示一个反应式数据表。我正在使用renderDataTable() 并确保在响应函数中返回数据表。我注意到数据表在 Shiny App 之外渲染得很好,所以不是变量/计算错误。我希望首先使用数据表的原因是我可以显示清理后的列名并以更干净的方式显示数据框。请让我知道我还能尝试什么,或者我是否应该改变我的方法。

这是服务器代码:

server <- function(input, output) {

  dataset <- reactive({
    shiny_tuition_salary <- datatable(df_tuition_salary %>%
                                        select(name, mean_net_cost, state) %>%
                                        filter(mean_net_cost >= input$input_budget[1],
                                               mean_net_cost <= input$input_budget[2],
                                               state == input$input_state) %>%
                                        select(name, mean_net_cost))

    return(shiny_tuition_salary)
  })

  output$df <- renderDataTable({

    dataset()

  })

}

目前,应用程序的“表格”选项卡下没有显示任何内容。当完全不使用 DataTable 时(即从服务器中删除 datatable() 并使用 RenderTable 而不是 RenderDataTable),该应用程序也会成功显示表格,所以我很肯定我的 RenderDataTable() 实现存在问题

谢谢!

编辑:这是ui 代码和示例df_tuition_salary 以及

ui <- fluidPage(

  titlePanel("What colleges match your budget and rank?"),

  # Sidebar laayout with input and output definitions ----
  sidebarLayout(

    # Sidebar panel for inputs ----
    sidebarPanel(

      # Input: Slider for the number of bins ----
      sliderInput(inputId = "input_budget",
                  label = "Budget:",
                  min = 0,
                  max = 50000,
                  value = c(0, 15000)),
      selectInput(inputId = "input_state",
                  label = "State (limited data, may limit options):",
                  choices = df_tuition_salary$state)

    ),

    # Main panel for displaying outputs ----
    mainPanel(
      tabsetPanel(
        id = 'output_df',
        # tabPanel("Plot", plotOutput("plot")),
        tabPanel("Table", tableOutput("df"))
      )

    )
  )
)

df_tuition_salary:

df_tuition_salary <- data.frame(name = c("Aaniiih Nakoda College", "Abilene Christian University"),
           mean_net_cost = c(7508.2414, 24884.0828),
           state = c("N/A", "N/A"))

【问题讨论】:

  • 刚刚添加到帖子中!

标签: r datatable shiny


【解决方案1】:

使用dataTableOutput()函数。

# Main panel for displaying outputs ----
    mainPanel(
      tabsetPanel(
        id = 'output_df',
        # tabPanel("Plot", plotOutput("plot")),
        tabPanel("Table", dataTableOutput("df"))
      )

【讨论】:

  • 请标记解决方案,以便后续关注。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-26
  • 1970-01-01
  • 2021-12-03
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 2023-04-09
相关资源
最近更新 更多