R Shiny: отображение прошедшего времени во время работы функции - PullRequest
0 голосов
/ 27 апреля 2020

Принимая ту же идею этого поста: R блестящий: отображать сообщение "загрузка ..." во время работы функции

Я бы хотел на самом деле не только отображать "загрузку" сообщение, но также отображает истекшее время пробега. И в конце концов, это окончательное время работы остается отображенным.

Я адаптирую MWE от R-блоггеров https://www.r-bloggers.com/long-running-tasks-with-shiny-challenges-and-solutions/

library(shiny)

ui <- fluidPage(

   # Sidebar with a slider input for number of bins 
   sidebarLayout(
      sidebarPanel(
        actionButton('run', 'Run')
      ),

      # Show a plot of the generated distribution
      mainPanel(
         tableOutput("result")
      )
   )
)

server <- function(input, output) {
  N <- 10

  result_val <- reactiveVal()
  observeEvent(input$run,{
    result_val(NULL)
    for(i in 1:N){
       # Long Running Task
       Sys.sleep(1)

       # Update progress
       incProgress(1/N)
     }
    result_val(quantile(rnorm(1000)))
  })
   output$result <- renderTable({
     result_val()
   })
}

shinyApp(ui = ui, server = server)

Согласно первому ссылка, способ показать сообщение / время / что-то - использовать conditionalPanel или загрузить библиотеку shinyjs и использовать такую ​​функцию, как onclick, toggle ...

Я вижу, что происходит в том случае, когда я нажимаю кнопку «Выполнить», появляется сообщение. Но что происходит, когда код выполняется?

Это первый пункт. Затем, я не хочу простого сообщения, я хочу «таймер», который отображает время работы.

Есть этот пост об общем времени Как рассчитать время реагирующей функции в приложении Shiny в r , а также использование invalidateLater из https://shiny.rstudio.com/gallery/timer.html Но последний отображает текущее время, а не время выполнения.

Я заблудился о том, как объединить все это, чтобы получить то, что я хочу. С MWE, как только я нажимаю на кнопку «Выполнить», появляется окно с сообщением, например, «истекшее время:» с фактическим временем выполнения.

Я надеюсь, что в моем запросе все ясно , Спасибо за вашу помощь.

...