我有一个简单的Shiny app
和DT 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,尤其是数据表选项。
答案 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)