#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)