Пользователь выбирает ввод, не найденный на сервере приложений Shiny

#r #shiny #shiny-server #shinyapps

Вопрос:

Я пытаюсь разрешить пользователю выбрать переменную и создать панель декомпозиции на основе их выбора, но когда я пытаюсь запустить приложение, в нем говорится об ошибке в eval: объект «ввод» не найден. Я не совсем понимаю, почему это происходит. Я пробовал ввести$decompelect reactive, но тогда он говорит, что переменная reactive не найдена. Кто-нибудь знает, что происходит?

 library(shiny) library(plotly) library(regclass) library(fpp3)  ui lt;- fluidPage(  selectInput("decompselect", "Choose variable", names(aus_production)),  plotOutput("decomp") )  server lt;- function(input,output){        output$decomp lt;- renderPlot({    aus_production %gt;%  model(x11 = X_13ARIMA_SEATS(input$decompselect~ x11())) %gt;%  components() %gt;% autoplot()    })     }  shinyApp(ui=ui, server=server)  

Комментарии:

1. если вы замените код внутри renderplot({...}) на просто print(input$decompselect) , вы все равно получите ту же ошибку?

2. Нет, я не знаю. Я думаю, что проблема как-то связана с моделью декомпозиции, но я не уверен, что именно

3. вы пробовали записать входные данные$decompselect во временную переменную и использовать их в своей модели?

4. просто добавьте строку tmp lt;- input$decompselect выше aus_production %gt;%... , а затем замените X_13ARIMA_SEATS(input$decompselect~ x11())) на X_13ARIMA_SEATS(tmp~ x11()))

5. вот решение! library(shiny) library(plotly) library(regclass) library(fpp3) ui lt;- fluidPage( selectInput("decompselect", "Choose variable", names(aus_production)), plotOutput("decomp") ) server lt;- function(input,output){ form lt;- reactive({ formula(paste(input$decompselect,"~x11()")) }) output$decomp lt;- renderPlot({ aus_production %gt;% model(x11 = X_13ARIMA_SEATS( formula(form()))) %gt;% components() %gt;% autoplot() }) } shinyApp(ui=ui, server=server)