隐藏数据表中的列-闪亮

时间:2018-07-06 11:29:09

标签: r datatable shiny subset shinydashboard

我正在使用反应性数据集构建一个闪亮的应用程序,该数据集输出到:(1) plot 和(2)一个 datatable (请参见下面的代码) 。 我已经成功提取了数据。但是,我在将某些变量(或列)隐藏在数据表中时遇到了麻烦,并且我在美学方面有一个小问题。

我正在使用由69个变量组成的大型数据集。当使用三个dropdownMenu输入进行过滤(请参见下面的代码)时,反应性数据集将被馈送到该图中,该图通过其总体评分(x)显示了商业服务的数量(y)-很好。

但是,我有两个与反应性数据集和数据表输出有关的问题:

(a)在“数据表”选项卡中,我想选择数据集的前8个变量可见,而其他61个变量隐藏。我试图用一些代码限制列表(请参阅服务器输出),但是数据表只是不加载。

(b)当我选择“数据表”选项卡时,变量名称框过大(请参见下图进一步说明。)我没有尝试解决此问题,因为我不知道问题可能是什么。

我们将不胜感激。

PS。如果有必要我可以提供有关数据的更多详细信息,它太大了,很难给出结构等信息。

UI

 ui <- fluidPage(
 titlePanel("Test App"),
 sidebarLayout(
  sidebarPanel(id = "sidebar",
               uiOutput("geography1"),
               uiOutput("geography2"),
               uiOutput("service"),
     mainPanel(
        tabsetPanel(type = "tabs",
                    tabPanel("Visual", plotOutput("plot", height = "500px")),
                    tabPanel("Underlying data", dataTableOutput("table"))
        )
     )
  )
  )
  ) 

服务器

    server <- function(input, output) {
   output$geography1 = renderUI({
      selectInput(inputId = "geog1",
                  label = "Select geography (higher):", 
                  choices = as.character(unique(Test$Geog1)),
                  selected = "Region")
   })
   datasub <- reactive({
      req(input$geog1)
      filter(Test, Geog1 %in% input$geog1)
   })

   output$geography2 = renderUI({
      selectInput(inputId = "geog2", 
                  label = "Select geography (lower):", 
                  choices = unique(datasub()[,"Geog2"]),
                  selected = unique(datasub()[,"Geog2"])[1]) 
   })
   datasub2 <- reactive({
      req(input$geog2)
      filter(datasub(), Geog2 %in% input$geog2)
   })

   output$service = renderUI({
      selectInput(inputId = "service",
                  label = "Select Service Type:",
                  choices = unique(datasub2()[,"Sub_type"]),
                  selected = unique(datasub2()[,"Sub_type"])[1])
   })
   datasub3 <- reactive({
      req(input$geog2)
      filter(datasub2(), Sub_type %in% input$service)

   })

   # Plot
   output$plot = renderPlot({

      plot(datasub3(), x = Overall_rating, locations = y)

   })

   # Generate an data table view of the data ----
   output$table <- renderDataTable({
      data.table(datasub3(),options=list(columnDefs = list(list(visible=FALSE, targets=c(9:69))))
   }) 

      shinyApp(ui, server)  

数据表的美学问题 Aesthetic issue with datatable

0 个答案:

没有答案