R блестящее приложение DT: применять фильтры, используя больше, чем
Я создаю блестящее приложение, используя 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, б] в то время как я просто хочу фильтр, как (5, б).
Есть ли простой способ сделать это, используя R и DT?
РЕДАКТИРОВАТЬ: Я думаю, что, возможно, моя проблема может быть решена с помощью параметров noUiSlider, то есть библиотеки Javascript, используемой для реализации фильтров, но я не знаю, какие параметры изменить и как реализовать изменения в 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
)
)
}
)
Здесь у вас есть диапазон для выбора ваших данных в зависимости от фильтров, которые вы хотите установить.
Первоисточник отсюда