R блестящие таблицы данных не показывают записи (строки) при запуске - PullRequest
1 голос
/ 24 сентября 2019

Я создаю блестящее приложение с таблицами данных.Я хочу, чтобы при запуске не отображались записи (строки).Так что вы видите только фильтры в верхней части таблицы.Когда вы начинаете печатать строки отображаются.Я не могу найти опцию в Datatables.Возможно ли это?

Пример кода приведен ниже.

    shinyApp(

ui = navbarPage(
    title = 'DataTable',
    DT::dataTableOutput('ex2')
),

server = function(input, output, session) {

    output$ex2 <- DT::renderDataTable(
        DT::datatable(
            iris, 
              options = list(
                dom = 'Bfrtip',
                lengthMenu = list(c(5, 15, -1), c('5', '15', 'All'))
            )
        )
    )

}
)

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

Вы можете создать свою собственную функцию поиска:

РЕДАКТИРОВАТЬ: добавлен второй character столбец, который ищется.

shinyApp(

  ui = navbarPage(
    title = 'DataTable',
    textInput('search', 'search'),
    DT::dataTableOutput('ex2')
  ),


  server = function(input, output, session) {

    require(dplyr)
    iris.mut <- iris %>% 
      mutate(bottom = paste0('v',sapply(Sepal.Width,function(x)paste0(rep('z',x*2),collapse="")),'bx'))

    dat <- reactive({

      if(input$search!=''){
        iris.mut %>%
          filter(grepl(input$search,Species)|grepl(input$search,bottom))
      } else {
        iris.mut %>%
          filter(Species == input$search)
      }
    })

    output$ex2 <- DT::renderDataTable(
      DT::datatable(
        dat(), 
        options = list(
          lengthMenu = list(c(5, 15, -1), c('5', '15', 'All'))
        )
      ))

  }
)
0 голосов
/ 24 сентября 2019

Вероятно, не самый эффективный способ, но я бы использовал пустышку data.frame, чтобы показать при запуске.При выборе фильтров (например, selectizeInput()) отображаются «реальные» данные.

 output$ex2 <- renderDT({

   myFilter <- input$myFilter

   # assuming selectizeInput() is used
   if(is.null(myFilter)){
     irisDF <- data.frame(Sepal.Length = "",
                          Sepal.Length = "",
                          Petal.Length = "",
                          theREst = "")
   } else {
     irisDF <- iris
   }

   DT::datatable(irisDF, options = list(
           dom = 'Bfrtip',
           lengthMenu = list(c(5, 15, -1), c('5', '15', 'All')))
   )

})
...