【问题标题】:Stopwatch as input in shiny for R秒表作为 R 的闪亮输入
【发布时间】:2018-07-19 14:12:10
【问题描述】:

在 R 闪亮的应用程序中是否有可能有一个可见的秒表(可启动和可停止),其中的秒数可以用作输入值?

我不知道任何实现。有没有一种简单的方法可以做到这一点? 提前感谢您的回答

【问题讨论】:

  • 如果您付出一些研究努力,您自己尝试过什么,您在哪里卡住了,或者您的尝试为什么失败,那么将来有人回答您的问题的机会会高得多?另请参阅here

标签: r timer shiny stopwatch seconds


【解决方案1】:

这是一种可能的解决方案,改编自我的回答 here 用于倒计时。

希望这会有所帮助!



library(lubridate)
library(shiny)

ui <- fluidPage(
  hr(),
  actionButton('start','Start'),
  actionButton('stop','Stop'),
  actionButton('reset','Reset'),
  tags$hr(),
  textOutput('timeleft')

)

server <- function(input, output, session) {

  # Initialize the timer, not active.
  timer <- reactiveVal(0)
  active <- reactiveVal(FALSE)
  update_interval = 0.1 # How many seconds between timer updates?

  # Output the time left.
  output$timeleft <- renderText({
    paste("Time passed: ", seconds_to_period(timer()))
  })

  # observer that invalidates every second. If timer is active, decrease by one.
  observe({
    invalidateLater(100, session)
    isolate({
      if(active())
      {
        timer(round(timer()+update_interval,2))
      }
    })
  })

  # observers for actionbuttons
  observeEvent(input$start, {active(TRUE)})
  observeEvent(input$stop, {active(FALSE)})
  observeEvent(input$reset, {timer(0)})

}

shinyApp(ui, server)

【讨论】:

  • 太整洁了!是否可以采用相同的想法来显示代码运行的速度?例如。有一个very_slow_function&lt;-function(),我想在这个very_slow_function 运行时在几秒钟内在我的闪亮应用程序中显示一个指示器? (所以我知道计算机并没有死机,而是实际上在做某事)
猜你喜欢
  • 2020-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-18
  • 2020-02-03
  • 2016-07-05
  • 2021-01-14
相关资源
最近更新 更多