Я пытаюсь использовать кнопку действия в R Shiny, чтобы запустить медленно работающую модель JAGS.Мне бы хотелось, чтобы какой-то текст появлялся, когда пользователь впервые нажимает кнопку, которая отображает, когда он нажал кнопку, чтобы он знал, что что-то происходит.
Пока действует кнопка действия, но она ждет, пока медленная модель не будет сделана, чтобы отобразить и вывод модели, и текст.
Я посмотрел на следующие вопросы, но они, похоже, не отвечают на мой вопрос, по крайней мере, не так, как я понимаю: R Порядок блестящего исполнения Шаблон для запускасерия блестящих действий
Я новичок в Shiny, поэтому я надеюсь, что это простая проблема.
Run.me <- function(a){
# some fake slow function
# This actually takes about 8 hours in real life
for (i in 2:a) {
Foo[i] <<- Foo[i-1] + sample(1:20,1)
}}
library(shiny)
Определить логику сервера ----
server <- function(input, output) {
observeEvent(input$runmodel, {
output$model.running <- renderText({paste("Model started at", Sys.time())})
})
observeEvent(input$runmodel, {
Foo <<- rep(1, 1e6)
Run.me(1e6)
output$model.ran <- renderTable({head(Foo)})
})
}
Определить пользовательский интерфейс ----
ui <- fluidPage(
fluidRow(
column(5, align = "center",
actionButton("runmodel", "Run the Model")),
textOutput("model.running")
),
fluidRow(
column(5, align = "center", tableOutput("model.ran"))
)
)
Запустить приложение ----
shinyApp(ui = ui, server = server)