R Блестящий набор ширины столбца DataTable

Я пытаюсь установить ширину столбцов в таблице данных, отображаемой в Shiny, и не могу реализовать ее с помощью параметров aoColumnDefs. Кто-нибудь пробовал это раньше? В моей таблице 1 текст, за которым следуют 3 числовых столбца. Числовые столбцы должны быть уже, а первый столбец (текст) шире.

output$result <- renderDataTable({
z <- as(dataInput(), "data.frame")
setnames(z, c("Rules", "Support", "Confidence", "StatDep"))
z
}, options = list(aLengthMenu = c(5, 30, 50), iDisplayLength = 5, bSortClasses = TRUE,
              aoColumnDefs = list(sWidth = "50px", aTargets = list(1))))

Спасибо,

  • Радж.

** Обновление ** Кажется, это работает, но могут быть и другие способы сделать это.

output$result <- renderDataTable({
z <- as(dataInput(), "data.frame")
setnames(z, c("Rules", "Support", "Confidence", "StatDep"))
z
}, options = list(aLengthMenu = c(5, 30, 50), iDisplayLength = 5, bSortClasses = TRUE,
              bAutoWidth = FALSE,
              aoColumn = list(list(sWidth = "150px", sWidth = "30px",
                                       sWidth = "30px", sWidth = "30px"))
                                  ))

person xbsd    schedule 08.08.2014    source источник


Ответы (2)


Попробуй это

#OUTPUT - dtdata
output$table <- DT::renderDataTable({
  data.frame(a=c(1,2,3,4,5),b=c("A","B","C","D","E"))
},
options = list(
  autoWidth = TRUE,
  columnDefs = list(list(width = '200px', targets = "_all"))
))

Устанавливает ширину всех столбцов на 200 пикселей.

Чтобы установить ширину выбранных столбцов, измените targets на число или вектор.

targets = c(1,3)
person rmf    schedule 04.08.2015
comment
Чтобы установить разную ширину столбцов для нескольких столбцов, вы можете использовать: columnDefs = (list (list (width = '200px', target = c (0, 2)), list (width = '80px', target = c (6)) )) - person Nivel; 30.11.2019
comment
Похоже, это не работает. Фактическое решение - установить параметр scrollX = TRUE (github.com/rstudio/DT/issues / 29 # issuecomment-162093790), затем укажите ширину столбцов с помощью CSS (stackoverflow.com/a/44110579/8605348). - person ardaar; 12.07.2021

Кстати, если вы похожи на меня и никогда не использовали DataTables до выхода версии 1.10 - приведенные выше примеры сначала смутили меня, потому что они используют нотацию, которая использовалась в версии 1.9, но 1.10 вводит новую нотацию: http://datatables.net/upgrade/1.10-convert

Я использовал новый синтаксис, т.е.

columnDefs вместо aoColumnDefs http://datatables.net/reference/option/columnDefs

width вместо sWidth http://datatables.net/reference/option/columns.width и т. д.

person numbercruncher    schedule 21.02.2015
comment
для тех из нас, кто не знаком с javascript, перевод документации с данными на их веб-сайтах, например [datatables.net/reference/option/columns.width] эквивалентным R код становится сложным. Например, уровень вложенности, необходимый в списке, неясен, если посмотреть на синтаксис JSON. Есть ли какие-нибудь советы по этому поводу? - person Lazarus Thurston; 06.02.2020
comment
Полезно знать о новой нотации, но этот ответ не дает и не указывает на использование современного синтаксиса DT. - person geotheory; 08.10.2020