#r #list #pipe #arima #forecast
Вопрос:
известно, что преобразованная версия интересующей переменной может быть лучше смоделирована с помощью стандартных процессов линейной авторегрессии интегрированной скользящей средней (ARIMA). Конечно, можно отменить преобразование журнала, применив экспоненциальную функцию к прогнозам, и таким образом получить прогноз исходной переменной. Я могу достичь цели с базой в R. Теперь мне нужно получить тот же результат в блестящем. я не знаю,как обновить элементы списка, fc. я думаю, что это решение с помощью pipe. итак, как использовать канал для перечисления с объектом прогноза?
код R в интерактивной среде выглядит следующим образом:
library(forecast) fc lt;- forecast(auto.arima(log(WWWusage) ) ) fc$x lt;-exp(fc$x) fc$mean lt;-exp(fc$mean ) fc$fitted lt;-exp(fc$fitted) fc$lower lt;-exp(fc$lower) fc$upper lt;-exp(fc$upper) fc$residuals lt;-exp(fc$residuals) plot(fc)
код R в блестящей среде выглядит следующим образом:
library(shiny) ui lt;- fluidPage( plotOutput("out") ) server lt;- function(input, output, session) { fc lt;- reactive(log(WWWusage) %gt;% auto.arima %gt;% forecast) output$out lt;- renderPlot( plot(fc())) } shinyApp(ui, server)
Комментарии:
1. Вам не нужно транслировать свою трансформацию только потому, что она в блестящем. Если ваш код работает вне Shiny, он будет работать в Shiny. Просто верните свой объект сюжета из вызова
renderPlot()
. если вам нужна более подробная информация, было бы полезно использовать MWE с вашим блестящим кодом. Добро пожаловать в SO!2. Лайми, ты не против дать коды?
Ответ №1:
library(shiny) library(forecast) ui lt;- fluidPage( plotOutput("out") ) server lt;- function(input, output, session) { fc lt;- reactive({ tmp lt;- forecast(auto.arima(log(WWWusage))) tmp$x lt;- exp(tmp$x) tmp$mean lt;- exp(tmp$mean ) tmp$fitted lt;- exp(tmp$fitted) tmp$lower lt;- exp(tmp$lower) tmp$upper lt;- exp(tmp$upper) tmp$residuals lt;- exp(tmp$residuals) tmp }) output$out lt;- renderPlot({ plot(fc()) }) } shinyApp(ui, server)
Основываясь на приведенном вами коде, я не вижу никаких причин для принятия fc
реактивных мер. Но это может быть результатом упрощения как части вашего MRE. Я отмечаю, что WWWusage
это не определено в вашем коде — вам придется соответствующим образом изменить мое предложение.