R闪亮的数据表don';开始时不显示记录(行)
我正在用datatables构建一个闪亮的应用程序。 我想要的是启动时没有显示任何记录(行)。因此,您只能在表的顶部看到过滤器。开始键入时,将显示行。 我在Datatables中找不到选项。这可能吗 下面是一个示例代码R闪亮的数据表don';开始时不显示记录(行),r,shiny,datatables,R,Shiny,Datatables,我正在用datatables构建一个闪亮的应用程序。 我想要的是启动时没有显示任何记录(行)。因此,您只能在表的顶部看到过滤器。开始键入时,将显示行。 我在Datatables中找不到选项。这可能吗 下面是一个示例代码 shinyApp( ui = navbarPage( title = 'DataTable', DT::dataTableOutput('ex2') ), server = function(input, output, session) {
shinyApp(
ui = navbarPage(
title = 'DataTable',
DT::dataTableOutput('ex2')
),
server = function(input, output, session) {
output$ex2 <- DT::renderDataTable(
DT::datatable(
iris,
options = list(
dom = 'Bfrtip',
lengthMenu = list(c(5, 15, -1), c('5', '15', 'All'))
)
)
)
}
)
shinyApp(
ui=navbarPage(
标题='DataTable',
DT::dataTableOutput('ex2')
),
服务器=功能(输入、输出、会话){
输出$ex2可能不是最有效的方式,但我会在启动时使用一个虚拟的data.frame
来显示。当您选择过滤器(例如selectizeInput()
)时,会显示“真实”数据
output$ex2 <- renderDT({
myFilter <- input$myFilter
# assuming selectizeInput() is used
if(is.null(myFilter)){
irisDF <- data.frame(Sepal.Length = "",
Sepal.Length = "",
Petal.Length = "",
theREst = "")
} else {
irisDF <- iris
}
DT::datatable(irisDF, options = list(
dom = 'Bfrtip',
lengthMenu = list(c(5, 15, -1), c('5', '15', 'All')))
)
})
output$ex2您可以创建自己的搜索功能:
编辑:添加正在搜索的第二个字符列
shinyApp(
ui = navbarPage(
title = 'DataTable',
textInput('search', 'search'),
DT::dataTableOutput('ex2')
),
server = function(input, output, session) {
require(dplyr)
iris.mut <- iris %>%
mutate(bottom = paste0('v',sapply(Sepal.Width,function(x)paste0(rep('z',x*2),collapse="")),'bx'))
dat <- reactive({
if(input$search!=''){
iris.mut %>%
filter(grepl(input$search,Species)|grepl(input$search,bottom))
} else {
iris.mut %>%
filter(Species == input$search)
}
})
output$ex2 <- DT::renderDataTable(
DT::datatable(
dat(),
options = list(
lengthMenu = list(c(5, 15, -1), c('5', '15', 'All'))
)
))
}
)
shinyApp(
ui=navbarPage(
标题='DataTable',
textInput('搜索','搜索'),
DT::dataTableOutput('ex2')
),
服务器=功能(输入、输出、会话){
需要(dplyr)
iris.mut%
变异(底部=paste0('v',sapply)(萼片宽度,功能(x)paste0(rep('z',x*2),collapse=“”),'bx'))
dat%
过滤器(grepl(输入$search,物种)| grepl(输入$search,底部))
}否则{
iris.mut%>%
过滤器(种类==输入$search)
}
})
输出$ex2这很有用。但是,如何对多个列执行此操作。首先搜索一列,然后在下一个搜索框中搜索第一次搜索操作的结果。是否可能?我将修改代码,以便测试多个条件。您可以使用or运算符|
组合多个条件nfilter()
函数。谢谢!我不知道如何实现测试多个条件。所有变量都是字符串(因此与iris样本集不同)。我将尝试一下。我将答案更改为搜索两列