以下是 rstudio shiny website 提供的 datatable 演示的直接复制。 过滤数据集非常容易(例如,钻石上的理想或鸢尾花上的 setosa),但是是否有一种方法可以过滤钻石数据集中的多个条件,例如“Ideal”和“Fair”? 我尝试了基本的“AND”和“&”语法、空格等,但似乎都没用。这似乎应该是可能的,但这是否可能需要某种绕路的方法?
然而,我似乎无法让columnFilter插件正常工作。columnDefs语句(已注释)可以正常工作,但当我尝试使用columnFilter语句时,只会得到表头和过滤搜索框。我怀疑必须修正某些语法才能使其正常工作。有关功能的示例,请参见此网站。请注意,这也是使用rstudio github的最新版本。
require(shiny)
runApp(
list(ui = fluidPage(
title = 'Examples of DataTables',
sidebarLayout(
sidebarPanel(
conditionalPanel(
'input.dataset === "diamonds"',
checkboxGroupInput('show_vars', 'Columns in diamonds to show:',
names(diamonds), selected = names(diamonds))
)
),
mainPanel(
tabsetPanel(
id = 'dataset',
tabPanel('diamonds', dataTableOutput('mytable1'))
)
)
)
),
server = shinyServer(function(input, output) {
# a large table, reative to input$show_vars
output$mytable1 <- renderDataTable({
library(ggplot2)
diamonds[, input$show_vars, drop = FALSE]
})
})
)
)
经过进一步搜索,我怀疑我应该能够使用jquery列过滤插件。为了简化这个问题,这里有一个更简化的版本:
library(shiny)
runApp(
list(ui = basicPage(
h1('Diamonds DataTable with TableTools'),
# added column filter plugin
singleton(tags$head(tags$script(src='https://code.google.com/p/jquery-datatables-column-filter/source/browse/trunk/media/js/jquery.dataTables.columnFilter.js',
type='text/javascript'))),
dataTableOutput("mytable")
)
,server = function(input, output) {
output$mytable = renderDataTable({
diamonds[,1:6]
}, options = list(
pageLength = 10,
columnDefs = I('[{"targets": [0,1],
"searchable": true}]')
)
)
}
))
然而,我似乎无法让columnFilter插件正常工作。columnDefs语句(已注释)可以正常工作,但当我尝试使用columnFilter语句时,只会得到表头和过滤搜索框。我怀疑必须修正某些语法才能使其正常工作。有关功能的示例,请参见此网站。请注意,这也是使用rstudio github的最新版本。