R Shiny DataTable фильтр отключен - PullRequest
0 голосов
/ 24 апреля 2019

Вот ссылка на файл данных, вы можете преобразовать его в текстовый формат. https://docs.google.com/document/d/1agR2wu82vBBv99DbmdXAQwyS9PF6nUUaKA1bGPH6eno/edit?usp=sharing

Вот скриншот для отсечения Когда я добавляю фильтр в таблицу данных на блестящей приборной панели, выпадающий список для фильтра обрезается. Есть ли способ исправить это? (Например, для столбца «Виды» в раскрывающемся списке фильтра не показан весь вид двух вариантов, мне нужно каким-то образом расширить раскрывающийся список.) Вот код, который можно воспроизвести в Rstudio:

library(shinydashboard)
library(ggplot2)
library(DT)


sidebar <- dashboardSidebar(
 sidebarMenu(
  menuItem("Summary", tabName = "summary"),
  menuItem("Analysis", tabName = "analysis")
 )
)


body <- dashboardBody(
   tabItems(
     tabItem(tabName = "summary",
     fluidRow(
     #column(width = 4,
     box(
      title = "Studies", width = 12, status = "danger", solidHeader = TRUE,

      div(style = 'overflow-y: scroll; max-height: 600px', DT::dataTableOutput('table'))
      #div(style = 'overflow-y: scroll; max-height: 300px', tableOutput('table'))
    )
    #)
  ),
  hr(),

  fluidRow(
    box(
      title = "Type of cancer", status = "warning", width = 6, plotOutput("hist1")
    ),

    box(
      title = "Data type", status = "warning", color="yellow", width = 6, plotOutput("DataType"))
  )
),
tabItem(tabName = "analysis", h2("Analysis and plots"))
)
)




ui <- dashboardPage(
   dashboardHeader(title = "Cancer research updates", titleWidth = 300),
   sidebar,
   body
)

server <- function(input, output) {
   #test.table <- data.frame(lapply(1:3, function(x) {1:20}))
   #names(test.table) <- paste0('This_is_a_very_long_name_', 1:3)
   pcdata <- read.csv("./data/ProstateCancerInput_Final.txt", sep = "\t", encoding = 'UTF-8')
   colnames(pcdata)[1] <- ''
   colnames(pcdata)[6] <- 'Data type'
   colnames(pcdata)[9] <- 'Type of cancer'
   pcdata$Link <- paste0("<a href ='",pcdata$Link,"'>","Link to data","</a>")
   output$table <- DT::renderDataTable({
   #test.table
   datatable(pcdata, rownames = FALSE, escape = FALSE,filter = 'top')
   })

   #windowsFonts(Arial=windowsFont("TT Arial")) 
 }

 shinyApp(ui = ui, server = server)

1 Ответ

1 голос
/ 26 апреля 2019

Поздравляю с вашим первым SO вопросом :) Я согласен с @divibisan, что поможет воспроизводимый пример (или даже скриншот).Если вы не знаете, как это сделать, проверьте, например.Эта статья или видео .

Из вашего описания, я думаю, вы бы добавили "overflow: visible" к стилю div, в котором находится ваша таблица. Здесь - некоторые изображения различных значений свойств переполнения, и вы можете поиграть с ними здесь .Не стесняйтесь задавать больше вопросов, если вы не уверены, что я имею в виду.

Удачи!

...