闪亮的R:RowReorder,不仅对所有值进行重新排序

时间:2018-11-29 17:30:44

标签: r shiny dt

我有一个简单的Shiny appDT table

library(shiny)
library(DT)

iris2 = head(iris, 30)


server <- function(input, output) {
    output$tb <-DT::renderDataTable(server=FALSE,{
        datatable(
            iris2,
            colnames = c(colnames(iris2)), extensions = 'RowReorder',
            options = list(rowReorder = TRUE))
    })
}


ui <- fluidPage(dataTableOutput('tb', width = '200px', height = '200px'))

shinyApp(ui, server)

但是,当我尝试调整表格行时,只有第一列会更改位置。如here所述,它可能与ReorderRow的配置有关。不幸的是,我不知道如何在Shiny应用程序中实现JavaScript,尤其是数据表选项。

1 个答案:

答案 0 :(得分:0)

github issue所述,必须添加行名并对表进行排序。有效的解决方案只需要在order = list(list(0, 'asc'))中添加DT options

library(shiny)
library(DT)

iris2 = head(iris, 30)


server <- function(input, output) {
  output$tb <-DT::renderDataTable(server=FALSE,{
    datatable(
      iris2,
      colnames = c(colnames(iris2)), extensions = 'RowReorder',
      options = list(order = list(list(0, 'asc')), rowReorder = TRUE))
  })
}


ui <- fluidPage(dataTableOutput('tb', width = '200px', height = '200px'))

shinyApp(ui, server)