有没有办法在googleVis中的gvisTable中进行多级排序? 我正在使用Shiny来显示这样的gvisTable:
x <- gvisTable(tabData,options=list(sortColumn=2,showRowNumber='TRUE',allowHtml='TRUE'),chartid=tabID)
我想知道是否有办法对值进行排序,比如,首先是第2列,然后是第3列。
如果gvisTable没有这个功能但是除了googleVis之外的另一个包中有另一种类型的表可以在Shiny中执行,那也没关系。 有什么想法吗?
答案 0 :(得分:3)
install.packages('shiny', type = 'source')
ui.r:
library(shiny)
shinyUI(bootstrapPage(
dataTableOutput('tbl')
))
server.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))
})
})
从dataTables说明: http://datatables.net/examples/basic_init/multi_col_sort.html
“如果bSort初始化程序为true(默认情况下),则此多重排序机制始终处于活动状态,最终用户可以通过”shift“单击要添加到排序的列来激活它。”
因此,当您运行此应用程序时,尝试按“y”排序,然后按住Shift键并单击x(观察列标题中的紫色突出显示的箭头),以查看“y”列是否仍然排序,而“ x“列更改排序顺序,使y固定。
答案 1 :(得分:1)
您可以对数据源进行排序,对吗?
orderedData <- tabData[order(tabData[2], tabData[3]),]
x <- gvisTable(orderedData,options=list(showRowNumber='TRUE',allowHtml='TRUE'),chartid=tabID)
答案 2 :(得分:0)
您可以简单地按多列排序,例如:
sortColumn=c(0,1,2) ## sort by columns 1:3