【问题标题】:R shiny-app DT: apply filters using greater thanR shiny-app DT:使用大于应用过滤器
【发布时间】:2019-03-19 17:04:59
【问题描述】:

我正在使用 R 构建一个闪亮的应用程序,并且在应用程序中,我需要显示一个表格,该表格可以将过滤器应用于数字、字符和因子列。

我正在使用 DT 包,这是代码示例:

# packages
library(shiny)
library(DT)

# ui
ui <- fluidPage(
    br(),
    DT::dataTableOutput("my_iris")
)

# server
server <- function(input, output) {
    output$my_iris <- DT::renderDataTable({
        datatable(
            data = iris,
            filter = list(
                position = "top",
                clear = FALSE,
                plain = TRUE
            )
        )
    })
}

# Run the application 
shinyApp(ui = ui, server = server)

问题是我需要对像“Sepal.Length > 5”这样的数字列应用过滤器,而我无法仅使用在 DT 中实现的滚动条来完成此操作,因为如果我移动滚动条,则应用的过滤器是像 [5,b] 而我只是想要一个像 (5,b) 这样的过滤器。

有没有一种简单的方法可以使用 R 和 DT 来实现这一点?

编辑:我认为也许我的问题可以使用noUiSlider的选项来解决,即用于实现过滤器的Javascript库,但我不知道要修改哪些选项以及如何实现DT中的更改.

【问题讨论】:

    标签: r filter shiny dt


    【解决方案1】:

    我知道这是旧帖子,但以防万一它对某人有帮助,我找到了一种方法。它可能不是最好的解决方案,也不是@agila 试图找到的解决方案。但它就是这样。

    library(shiny)
    library(DT)
    shinyApp(
        ui = fluidPage(
            fluidRow(
                column(12,
                       DTOutput('table')
                )
            )
        ),
        server = function(input, output) {
            output$table <- renderDT(iris,
                                     filter = "top",
                                     options = list(
                                         pageLength = 5
                                     )
            )
        }
    )
    

    在这里,您可以根据要放置的过滤器选择数据范围。

    原文来自here

    【讨论】:

    • 嗨,伊娃!非常感谢您的回答,但我不明白它如何解决我的问题。您可以添加更多详细信息吗?我仍然不明白如何只选择那些满足 Sepal.Length > 5 等条件的行。
    猜你喜欢
    • 2021-03-27
    • 2021-11-20
    • 2019-07-17
    • 2019-05-08
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 2021-02-04
    相关资源
    最近更新 更多