R闪亮的数据表列未排序为数字

时间:2016-03-18 15:26:14

标签: r sorting datatable shiny

我遇到DT :: rednerDataTable的问题。当我的数据表生成时,我有三(10)列数字没有被排序。这是它看起来像排序:  enter image description here

这是我的代码:

library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardBody(
    tabItems((tabName = "ResultsTable",
              fluidPage(column(11, DT::dataTableOutput("table",width = "100%"),offset = 0))))

shinyServer(function(input, output, session) {
        output$table <- DT::renderDataTable(DT::datatable({
          data <- rv$data
          if (input$sour != "All") {
            data <- data[data[,1] == input$sour,]
          }else{data}
          if (input$sour1 != "All") {
            data <-data[data[,2] == input$sour1,]
          }else{data}
          if (input$tran2 != "All") {
            data <-data[data[,3] == input$tran2,]
          }else{data}
        }))
})

变量数据是data.frame,数字列已经排序,但是当我单击表格中列名称旁边的向上和向下箭头时(如下所示),排序会混淆。

我很感激任何帮助!

谢谢

1 个答案:

答案 0 :(得分:1)

我的数据是一个矩阵。我首先必须将其转换为数据框,然后更改数字所需的列(一些列字符串)。我没有必要更改上面的代码。它是在脚本中生成数据表。该表为10列,列为5:8,为数字。

 table_output=as.data.frame(table_output);
data=cbind(table_output[,1:4],as.numeric(as.character(table_output[,5])),as.numeric(as.character(table_output[,6])),as.numeric(as.character(table_output[,7])), as.numeric(as.character(table_output[,8])), table_output[,9:10])