首页 > 解决方案 > R闪亮过滤器没有适用于“filter_”的适用方法应用于“函数”类的对象

问题描述

我正在制作一个 Shiny 应用程序,其ui功能server如下所示:

ui <- fluidPage(
    
    # App title ----
    titlePanel("All Histograms!"),
    
    # Sidebar layout with input and output definitions ----
    sidebarLayout(
        
        # Sidebar panel for inputs ----
        sidebarPanel(
            selectInput(inputId = 'dataset', label = 'Choose a dataset:', 
                        choices = list.files(path = "#path here",
                                             full.names = FALSE,
                                             recursive = FALSE)),
           
            
        ),
        
        # Main panel for displaying outputs ----
        mainPanel(
            
            # Output: Histogram ----
            plotOutput(outputId = "distPlot")
            
        )
        
    ))  
server<- function( input, output, session){
    outputdf <- reactive({
        infile <- input$dataset
        if (is.null(infile)){
            return(NULL)
        }
        df<-read_feather(paste0("path_here",infile))
    })
    
    output$checkboxCompany <- renderUI({
        checkboxGroupInput(inputId = "company_selection", 
                           label="Company", 
                           choices = unique(outputdf()$Company)
        )
        })
    output$checkboxPredictedCondition <- renderUI({
        checkboxGroupInput(inputId = "predicted_condition_selection", 
                           label="Predicted Condition", 
                           choices = unique(outputdf()$Predicted.Condition)
        )
    })
    
    reactive_data <- reactive({
        df%>% 
            filter(Company %in% input$company_selection)%>%
            filter(Predicted.Condition %in% input$predicted_condition_selection)%>%
            pull(Predicted.Probability)
        
    })
    
    output$distPlot <- renderPlot({
        hist(reactive_data(), xlab = 'Predicted Probability', ylab = 'Frequency')
    })
}

用户应该能够使用 来从数据集列表中进行选择selectInput,然后基于数据集,进行checkbox两组companyPredict.Condition进行修改 - 例如,一个数据集可能具有 的选项a,b,ccompany而不同的数据集具有 的选项a,c,dcompany

然后,根据选择的数据集和标记的结果复选框,我正在制作一个反应直方图。

但是,当我运行该应用程序时,我收到“没有适用于filter_类函数对象的适用方法”错误。我猜 R 认为df我传入的reactive_data是一个函数?我在这里做错了什么?

标签: rshiny

解决方案


Turns out my reactive_data should have started with outputdf() and my ui was missing two uiOutputs for Company and Predicted COndition


推荐阅读