4

有没有办法在 googleVis 的 gvisTable 中进行多级排序?我正在使用 Shiny 来显示这样的 gvisTable:

x <- gvisTable(tabData,options=list(sortColumn=2,showRowNumber='TRUE',allowHtml='TRUE'),chartid=tabID)

我想知道是否有一种方法可以对值进行排序,例如,首先按第 2 列,然后按第 3 列。

如果 gvisTable 没有此功能,但 googleVis 之外的另一个包中的另一种类型的表可以在 Shiny 中完成,那也可以。有任何想法吗?

4

3 回答 3

3
install.packages('shiny', type = 'source')

ui.r:

library(shiny)
shinyUI(bootstrapPage(
  dataTableOutput('tbl')
))

服务器.r:

library(shiny)
shinyServer(function(input, output) {
  output$tbl <- renderDataTable({
    data.frame(x = 1:10, y = c(1, 1, 2, 2, 3, 3, 4, 4, 5, 5))
  })
})

从数据表描述: http ://datatables.net/examples/basic_init/multi_col_sort.html

“如果 bSort 初始化程序为真(默认情况下),则这种多重排序机制始终处于活动状态,并且最终用户可以通过点击他们想要添加到排序的列‘shift’来激活它。”

因此,当您运行此应用程序时,尝试按“y”排序,然后按住 shift 单击 x(查看列标题中紫色突出显示的箭头),以查看“y”列保持排序状态,而“x”列更改排序顺序,使 y 固定。

于 2014-01-06T18:31:54.113 回答
1

您可以对数据源进行排序,对吗?

orderedData <- tabData[order(tabData[2], tabData[3]),]
x <- gvisTable(orderedData,options=list(showRowNumber='TRUE',allowHtml='TRUE'),chartid=tabID)
于 2014-01-08T16:29:18.030 回答
0

您可以简单地按多列排序,例如:

sortColumn=c(0,1,2) ## sort by columns 1:3
于 2014-01-06T18:45:12.773 回答