R rpivotTable:有没有一种方法可以根据当前列选择中显示的值对表进行排序?

时间:2020-07-22 17:04:08

标签: r sorting pivot-table pivottable.js rpivottable

我正在尝试查看是否有一种方法可以按列值对数据透视表进行排序。

在下面的示例程序和输出代码段中,是否可以按“ cyl”,“ disp”,“ hp”或“ mpg”列对表格进行排序?

library(shiny)
library(dplyr)
library(rpivotTable)

ui <- fluidPage(
  rpivotTableOutput(outputId = "rpv")
)

server <- function(input, output) {
  
sorter <- paste0("
    function(attr) {
      var sortAs = $.pivotUtilities.sortAs;
      if (attr == 'x') { return sortAs(['mpg','disp','cyl','hp']); }
    }")
  
  observe({
    output$rpv <- renderRpivotTable({rpivotTable(mtcars %>% gather(x, y, 1:4), rows = c('vs','gear'), cols = c('x'), vals = 'y', sorters = sorter, aggregatorName = "Sum", subtotals = TRUE)})
  })
}

shinyApp(ui = ui, server = server)

rPivotTable Code Output

作为示例输出,按“ mpg”列排序将显示表格,以使“ mpg”列值将为(假定为asc): 299.10、42.00、76.50、180.60、343.80、30.40、61.00、252.40 ,642.90

我认为可能是

  • 使用“ sorters”参数的扩展,例如上面的代码显示了列标题的排序

  • 通过使用javascript单击标题来对表进行排序-不知道这是否可行。

0 个答案:

没有答案