gpt4 book ai didi

r - 过滤渲染数据表 Shiny

转载 作者:行者123 更新时间:2023-12-03 23:57:36 27 4
gpt4 key购买 nike

我在 server.R 中定义的 Shiny 服务器上有一个数据表,如下所示:

output$datamining_table <- DT::renderDataTable(datatable(values$datamining_list,selection="single",
option=list(lengthMenu = list(c(5, 10,20, -1), c('5', '10','20', 'All')),
pageLength = 10,scrollX=T),filter = "top",rownames = F))

我的 ui.R 中还有一个带有按钮的 selectizeInput。当我选择 selectizeInput 的特定值并单击按钮时,我希望根据我的 selectizeInput 的值过滤下面的数据表。

例如:

数据表:
  • Name1 valueA
  • Name2 valueB
  • Name1 valueC
  • Name3 valueD

  • 如果在 selectizeInput 中我选择 Name1 然后单击我的按钮,我希望我的数据表看起来像:
  • Name1 valueA
  • Name1 valueC

  • 将第一列的过滤条件设置为 Name1,以便我可以取消过滤它。
    有人会知道如何实现这一目标吗?

    非常感谢你的帮助!

    编辑:
    这是一个可重现的代码:
        library(shiny)
    library(DT)
    runApp(list(

    ui=
    div(selectizeInput("selectInput","filter",c("a","b","c"),options=list(maxItems=1,create = F,onInitialize = I('function() { this.setValue(""); }'))),
    dataTableOutput("datamining_table")
    ),

    server=function(input, output, session) {
    values <- reactiveValues()
    values$datamining_list <- data.frame(name =c("a","b","c"),
    value = c(1,2,3))
    output$datamining_table <- DT::renderDataTable(datatable(values$datamining_list,selection="single",
    option=list(lengthMenu = list(c(5, 10,20, -1), c('5', '10','20', 'All')),
    pageLength = 10,scrollX=T),filter = "top",rownames = F))
    }))

    最佳答案

    这应该会有所帮助。

        library(shiny)
    library(DT)

    ### User Interface
    ui <- shinyUI(fluidPage(
    mainPanel(
    fluidRow(
    selectizeInput("selectInput",label ="Filter", choices= NULL, selected = NULL)
    ),
    fluidRow(
    DT::dataTableOutput("datamining_table")
    )
    )
    )
    )


    server <- shinyServer(function(input, output,session){

    myDataFrame <- data.frame(name =c("a","b","c"),
    value = c(1,2,3))

    updateSelectizeInput(session, 'selectInput', choices = c('a','b','c'), server = TRUE)

    filterData <- reactive({
    myDataFrame[which(myDataFrame$name == input$selectInput),]

    })

    output$datamining_table <- DT::renderDataTable({
    DT::datatable(filterData(),selection="single",rownames = F)
    })


    })

    shinyApp(ui = ui, server = server)

    关于r - 过滤渲染数据表 Shiny ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41246254/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com