gpt4 book ai didi

r - 在大量列的情况下,在 R Shiny DataTable 中设置列​​宽不起作用

转载 作者:行者123 更新时间:2023-12-04 03:57:14 28 4
gpt4 key购买 nike

我需要在 R Shiny 应用程序中设置 DataTabe 的列宽。我经历了Data Table Options在文档中。另外,我评论了 thisthis Stackoverflow 中的问题。

如果 DataTable 没有太多列,则设置宽度可以正常工作。但是,在某些情况下,如果存在多个列,则尽管使用绝对宽度单位(例如 '600px' ),设置仍会被覆盖。

在下面的代码片段中:

output$mytable <- DT::renderDataTable({
num_of_cols <- 3
cbind(iris,iris)[,1:num_of_cols]},
options = list(autoWidth = TRUE,
columnDefs = list(list(width = '500px', targets = 1))))

如果我设置变量 num_of_cols = 3它工作正常。但是,增加显示的列 ( num_of_cols ) 会导致列宽减小。在大量显示的列的情况下,宽度设置似乎不起作用。

我试过选项 autoWidth = FALSE但它没有给出不同的结果。我还尝试在选项中使用 JavaScript drawCallbackthis 的回答部分所述线程,但它给出了相同的结果。

如何让 DataTable 显示所需的列宽设置?

最佳答案

哇。我无法相信这一点。表格对象上的列宽应该如此清晰,但对于数据表却如此令人困惑。我花了很多时间对此进行研究,并最终在 RStudio 中显示的工具提示中找到答案。

DT::renderDataTable({
datatable(df) %>% formatStyle(columns = c(1,2), width='200px')
})

编辑:

这可能有效,但实际上并没有比任何其他方式更好。我可以说没有直接的方法可以做到这一点。这是我现在使用的代码......我认为我不需要使用其他任何东西。我必须逐列构建它并不断返回并调整以使其正常工作。似乎是应该修复的东西。

我将 UI 宽度值设置为 1200px 以开始并在我完成后将其缩小。
#UI
DT::dataTableOutput(outputId = "tableID", width = '830px')
#Server
options = list(autoWidth = TRUE,
columnDefs = list(list(targets=c(0), visible=TRUE, width='90'),
list(targets=c(1), visible=TRUE, width='145'),
list(targets=c(2), visible=TRUE, width='105'),
list(targets=c(3), visible=TRUE, width='100'),
list(targets=c(4), visible=TRUE, width='100'),
list(targets=c(5), visible=TRUE, width='100'),
list(targets=c(6), visible=TRUE, width='100'),
list(targets=c(7), visible=TRUE, width='90'),
list(targets='_all', visible=FALSE)

关于r - 在大量列的情况下,在 R Shiny DataTable 中设置列​​宽不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34850382/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com