如何解决在 R 中使用 scrollX 时设置列宽
我正在尝试更改 DT::datatable 中某些列的宽度,不幸的是,仅当数据中的列数较少时,才使用 columnDefs 选项才有效。
当我将所有列添加到我的数据中时,列宽不再遵循我在 columnDefs 选项中的设置。
这是一个例子,你可以看到第一个表格的宽度都是恒定的,而在第二个表格中,我已经能够根据需要手动设置宽度。删除 scrollX 参数也不起作用,考虑到我的数据的列数,我需要它。
library(MASS)
library(shiny)
library(DT)
ui <- fluidPage(
mainPanel(
DT::dataTableOutput("table1"),br(),DT::dataTableOutput("table2")
)
)
server <- function(input,output) {
output$table1 <- DT::renderDataTable({
DT::datatable(
Cars93[,-(20:27)],rownames = FALSE,options = list(
pageLength = 5,autowidth = TRUE,scrollX = TRUE,searching = TRUE,ordering = TRUE,paging = TRUE,columnDefs = list(list(width = "200px",targets = c(0:2)),list(width = "20px",targets = 3),list(width = "50px",targets = 4))
)
)
})
output$table2 <- DT::renderDataTable({
DT::datatable(
Cars93[,-(6:27)],options = list(
pageLength = 5,targets = 4))
)
)
})
}
shinyApp(ui,server)
我需要在我的代码中更改什么才能在第一个表中设置列宽,就像在第二个表中一样,同时拥有所有列和 scrollX?
谢谢
解决方法
试试:
ui <- fluidPage(
tags$head(
tags$style(
HTML("table {table-layout: fixed;}")
)
),......
并将 autowidth
替换为 autoWidth
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。