【发布时间】:2019-06-14 10:23:53
【问题描述】:
我正在尝试制作一个应用程序,用户可以在其中浏览文件,然后从列名列表中选择任何特定列,然后绘制直方图。此外,我想给用户一个选项来删除异常值,这是一个复选框输入。如果单击该复选框,则会删除异常值并再次绘制直方图。简而言之,直方图对用户在复选框中所做的选择做出反应。当在复选框上观察到观察事件时,我无法绘制图表。我认为当我将数据创建为响应式时,它没有被适当地引用。
我不确定如何在这里准确地使用反应性。如果我不使用反应性,那么我会收到一个错误,即我的数据集在 observeEvent 函数下不可用(可能是本地函数的情况)
df_data <- reactiveValues(data= NULL)
observeEvent(input$filename,{
df_data$data <- data.frame(read.csv(input$filename$datapath))
updateSelectInput(session,"field_mapping",choices = colnames(df_data$data))
updateCheckboxInput(session,"outlier_removal",value = TRUE)
})
observeEvent(input$outlier_removal,{
if(input$outlier_removal)
{ cash_diff <- removeOutliers(createCashDiff(as.vector(df_data$data[,input$field_mapping]),input$percent_change)) }
else { cash_diff <- removeOutliers(createCashDiff(as.vector(df_data$data[,input$field_mapping]),input$percent_change)) }
output$Histogram <- renderPlotly({ plotDiff(cash_diff) })
})
【问题讨论】: