1

亲爱的 Shiny 和 DT 大师们!我正在尝试在我闪亮的应用程序中使用自然排序插件,但它似乎不起作用。我认为它与以前版本的 Shiny 或/和之前的 DT 包一起使用。有谁能够帮我?请参阅下面的示例(我正在尝试对最后一列进行排序):

服务器.R

library(shiny)
require(DT)
shinyServer(function(input, output) {
    output$example <- DT::renderDataTable({
        table = cbind(LETTERS[1:5],matrix(1:20,nrow=5),c(1,2,3,10,"a"))
        table = rbind(c("filtered",round(rnorm(5),3)),table)
        DT::datatable(table,
                      rownames = FALSE,
                      extensions = list(FixedColumns = list(leftColumns = 1)),
                      options = list(
                          columnDefs = list(list(type = "natural", targets = "_all"))))
    })
})

用户界面

library(shiny)
require(DT)
shinyUI(
    fluidPage(
        tags$head(
            tags$script(src = "http://cdn.datatables.net/1.10.6/js/jquery.dataTables.min.js", type = "text/javascript"),
            tags$script(src = "http://cdn.datatables.net/plug-ins/1.10.7/sorting/natural.js", type = "text/javascript")
        ),
        DT::dataTableOutput('example')
    )
)
4

1 回答 1

1

DT的当前开发版本(>= 0.1.16)中,您可以使用 启用此插件,例如datatable(..., plugins = 'natural')

library(shiny)
library(DT)
shinyApp(
  ui = fluidPage(
    DT::dataTableOutput('example')
  ),
  server = function(input, output) {
    output$example <- DT::renderDataTable({
      table = cbind(LETTERS[1:5],matrix(1:20,nrow=5),c(1,2,3,10,"a"))
      table = rbind(c("filtered",round(rnorm(5),3)),table)
      table
    }, server = FALSE, plugins = 'natural', options = list(
      columnDefs = list(list(type = "natural", targets = "_all"))
    ))
  }
)

有关更多信息,请参阅文档

于 2015-07-09T22:37:10.303 回答