【问题标题】:renderDatatable in shiny giving a distorted filter闪亮的renderDatatable给出一个扭曲的过滤器
【发布时间】:2019-03-20 12:08:55
【问题描述】:

我似乎无法弄清楚我在闪亮的应用程序中使用数据表时遇到的这个问题... renderDatatable 顶部的过滤器呈现出扭曲的外观。见下文:

示例数据和代码:

roadsalt_data<-structure(list(orgid = c("NJDEP_BFBM", "NJDEP_BFBM", "NJDEP_BFBM", 
"NJDEP_BFBM", "NJDEP_BFBM", "BTMUA", "NJDEP_BFBM", "BTMUA", "USGS-NJ", 
"BTMUA"), locid = c("NJDEP_BFBM-NJW04459-254-1", "NJDEP_BFBM-NJW04459-254-1", 
"NJDEP_BFBM-NJW04459-254-1", "NJDEP_BFBM-NJW04459-254-1", "NJDEP_BFBM-NJW04459-254-1", 
"BTMUA-INTAKE", "NJDEP_BFBM-NJW04459-254-2", "BTMUA-INTAKE", 
"USGS-01378600", "BTMUA-INTAKE"), stdate = structure(c(15664, 
15664, 15664, 15664, 15664, 14173, 15664, 14174, 13570, 14176
), class = "Date"), sttime = structure(c(43560, 43680, 43740, 
43380, 43260, 40920, 45000, 36420, 37200, 37800), class = c("hms", 
"difftime"), units = "secs"), charnam = c("Specific conductance", 
"Specific conductance", "Specific conductance", "Specific conductance", 
"Specific conductance", "Specific conductance", "Specific conductance", 
"Specific conductance", "Specific conductance", "Specific conductance"
), val = c(26200, 26200, 26200, 25700, 23800, 23039, 22000, 20981, 
16000, 15543), valunit = c("uS/cm @25C", "uS/cm @25C", "uS/cm @25C", 
"uS/cm @25C", "uS/cm @25C", "uS/cm @25C", "uS/cm @25C", "uS/cm @25C", 
"uS/cm @25C", "uS/cm @25C"), swqs = c("FW2-NT", "FW2-NT", "FW2-NT", 
"FW2-NT", "FW2-NT", "FW2-NT", "FW2-NT", "FW2-NT", "FW2-NT", "FW2-NT"
), WMA = c(5L, 5L, 5L, 5L, 5L, 13L, 5L, 13L, 5L, 13L), year = c(2012L, 
2012L, 2012L, 2012L, 2012L, 2008L, 2012L, 2008L, 2007L, 2008L
), locid2 = c("NJW04459-254-1", "NJW04459-254-1", "NJW04459-254-1", 
"NJW04459-254-1", "NJW04459-254-1", "INTAKE", "NJW04459-254-2", 
"INTAKE", "01378600", "INTAKE")), .Names = c("orgid", "locid", 
"stdate", "sttime", "charnam", "val", "valunit", "swqs", "WMA", 
"year", "locid2"), row.names = c(NA, -10L), class = c("tbl_df", 
"tbl", "data.frame"))

library(shiny)
library(shinydashboard)

header<- dashboardHeader()
sidebar<- dashboardSidebar()
body<- dashboardBody(DT::dataTableOutput("Table1"))

ui<-dashboardPage(header, sidebar, body)

server<- function(input,output,session){
  output$Table1<- DT::renderDataTable({
    DT::datatable(roadsalt_data,filter = 'top')
  })
}

shinyApp(ui = ui, server = server)

【问题讨论】:

    标签: r datatable shiny render


    【解决方案1】:

    当您的应用无法正确适应屏幕时,就会出现这种情况。这是我 15 英寸笔记本电脑上的样子:

    但是,如果我放大(类似地在较小的屏幕上),就会出现失真。您可以将代码编辑为以下内容,它应该创建一个滚动条而不是扭曲:

    DT::datatable(roadsalt_data,filter = 'top', options = list(scrollX = TRUE))
    

    更新

    包括完整代码

    roadsalt_data<-structure(list(orgid = c("NJDEP_BFBM", "NJDEP_BFBM", "NJDEP_BFBM", 
    "NJDEP_BFBM", "NJDEP_BFBM", "BTMUA", "NJDEP_BFBM", "BTMUA", "USGS-NJ", 
    "BTMUA"), locid = c("NJDEP_BFBM-NJW04459-254-1", "NJDEP_BFBM-NJW04459-254-1", 
    "NJDEP_BFBM-NJW04459-254-1", "NJDEP_BFBM-NJW04459-254-1", "NJDEP_BFBM-NJW04459-254-1", 
    "BTMUA-INTAKE", "NJDEP_BFBM-NJW04459-254-2", "BTMUA-INTAKE", 
    "USGS-01378600", "BTMUA-INTAKE"), stdate = structure(c(15664, 
    15664, 15664, 15664, 15664, 14173, 15664, 14174, 13570, 14176
    ), class = "Date"), sttime = structure(c(43560, 43680, 43740, 
    43380, 43260, 40920, 45000, 36420, 37200, 37800), class = c("hms", 
    "difftime"), units = "secs"), charnam = c("Specific conductance", 
    "Specific conductance", "Specific conductance", "Specific conductance", 
    "Specific conductance", "Specific conductance", "Specific conductance", 
    "Specific conductance", "Specific conductance", "Specific conductance"
    ), val = c(26200, 26200, 26200, 25700, 23800, 23039, 22000, 20981, 
    16000, 15543), valunit = c("uS/cm @25C", "uS/cm @25C", "uS/cm @25C", 
    "uS/cm @25C", "uS/cm @25C", "uS/cm @25C", "uS/cm @25C", "uS/cm @25C", 
    "uS/cm @25C", "uS/cm @25C"), swqs = c("FW2-NT", "FW2-NT", "FW2-NT", 
    "FW2-NT", "FW2-NT", "FW2-NT", "FW2-NT", "FW2-NT", "FW2-NT", "FW2-NT"
    ), WMA = c(5L, 5L, 5L, 5L, 5L, 13L, 5L, 13L, 5L, 13L), year = c(2012L, 
    2012L, 2012L, 2012L, 2012L, 2008L, 2012L, 2008L, 2007L, 2008L
    ), locid2 = c("NJW04459-254-1", "NJW04459-254-1", "NJW04459-254-1", 
    "NJW04459-254-1", "NJW04459-254-1", "INTAKE", "NJW04459-254-2", 
    "INTAKE", "01378600", "INTAKE")), .Names = c("orgid", "locid", 
    "stdate", "sttime", "charnam", "val", "valunit", "swqs", "WMA", 
    "year", "locid2"), row.names = c(NA, -10L), class = c("tbl_df", 
    "tbl", "data.frame"))
    
    library(shiny)
    library(shinydashboard)
    
    header<- dashboardHeader()
    sidebar<- dashboardSidebar()
    body<- dashboardBody(DT::dataTableOutput("Table1"))
    
    ui<-dashboardPage(header, sidebar, body)
    
    server<- function(input,output,session){
      output$Table1<- DT::renderDataTable({
        DT::datatable(roadsalt_data,filter = 'top', options = list(scrollX = TRUE))
      })
    }
    
    shinyApp(ui = ui, server = server)
    

    【讨论】:

    • 感谢您的回答。但是,当我运行您的代码时,没有任何变化。
    • 您添加了滚动条但没有任何变化?请问您使用的是什么尺寸的屏幕以及您使用的浏览器?
    • 是的。我已经尝试过带 safari 的 13 英寸笔记本电脑。以及带 Internet Explorer 的 15 英寸台式机。
    • 我已在更新的答案中添加了完整代码。请重启 RStudio 后再测试一次。
    • 唯一的另一件事可能是您正在使用的软件包版本。您可以尝试更新到最新版本,否则我不知所措。特别是,您运行的是哪个版本的 DT?
    猜你喜欢
    • 2014-05-02
    • 2018-05-02
    • 2020-09-18
    • 2021-11-21
    • 2014-07-06
    • 2018-07-30
    • 2021-09-25
    • 1970-01-01
    • 2019-05-03
    相关资源
    最近更新 更多