Динамическая фильтрация с dplyr в Shiny

Я пытаюсь выбрать, чтобы пользователь выбрал столбец для отображения данных, которые они хотели бы видеть. Затем оттуда я фильтрую его по коэффициенту переменной, для которой они хотели бы видеть данные. Как мне заставить его правильно фильтровать?

library(shiny)
library(shinydashboard)
library(tidyverse)

ui <- fluidPage(

    dashboardHeader(title  = "Diamond"),
    dashboardSidebar(disable = TRUE),
    dashboardBody(
        column(2, wellPanel( selectInput("GroupLevel", "Variable",
                                         choices = c("Diamond Cut","Visible Color","Clarity Type"),
                                         selected = "Diamond Cut"),uiOutput("ui"))), 
        dataTableOutput("value")
    )
)

server <- function(input, output) {
    grouping <- list("Diamond Cut" = "cut",
                     "Visible Color" = "color", 
                     "Clarity Type" = "clarity")
    output$ui <- renderUI({
        if (is.null(input$GroupLevel))
            return()
        switch(input$GroupLevel,
               "Diamond Cut" = selectInput("dynamic", "Cut",
                                      choices = sort(unique(diamonds$cut))),
               "Visible Color" = selectInput("dynamic", "Color",
                                      choices = sort(unique(diamonds$color))),
               "Clarity Type" =  selectInput("dynamic", "Clarity",
                                       choices = sort(unique(diamonds$clarity)))
        )
    })

    data_table <-reactive(diamonds %>% 
                              group_by_(grouping[[{input$GroupLevel}]]) %>% 
                              summarise_if (is.numeric,mean) %>% 
                              dplyr::filter(grouping[[{input$GroupLevel}]] == {input$dynamic}))
    output$value <- renderDataTable({data_table()},options = list(searching = FALSE, paging = FALSE))
}

shinyApp(ui = ui, server = server)

Попробуйте использовать filter_ (), который будет оценивать символьные выражения.

Bruno Pinheiro 26.10.2018 02:25

@BrunoPinheiro У меня есть, он все еще не фильтрует правильно

Big_Ozzy 26.10.2018 02:27

Поставьте фильтр перед суммированием. Зачем группируешься, если показываешься только на уровне?

Elin 26.10.2018 02:52

@Elin Поставить фильтр раньше года не помогло. В фактическом наборе данных я группирую по паре других переменных, таких как Week и Year.

Big_Ozzy 26.10.2018 02:59

До года? Вы обязательно должны сначала подгруппировать, а затем подвести итоги. Вы можете сделать фильтрацию сколь угодно сложной. Ваш анализ трубопроводов довольно нестандартен. Почему вы повторяете один и тот же список значений и меток несколько раз?

Elin 26.10.2018 03:12
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
383
0

Другие вопросы по теме