Подтвердить что ты не робот

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

Я пытаюсь установить ширину столбцов в DataTable, представленную в Shiny, и не могу ее реализовать с помощью опций aoColumnDefs. Кто-нибудь пробовал это раньше? В моей таблице есть 1 текст, за которым следуют 3 числовых столбца. Числовые столбцы должны быть уже и 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,
              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"))
                                  ))
4b9b3361

Ответ 1

Попробуйте это

#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)

Ответ 2

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

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

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

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