很抱歉问了一个愚蠢的问题。我很确定它有一个简单的解决方案,但我仍然无法弄清楚。
我有一个 Action 按钮,我点击了几次,我应该有点击之间的时间间隔。
例子,
我现在点击按钮,两分钟后再次点击,第二次点击 4 分钟后再次点击,第三次点击后 5 分钟再次点击,依此类推。
2分钟=第二次点击和第一次点击的时间差
4分钟=第三次点击和第二次点击的时间差
5分钟=第四次点击和第三次点击的时间差
我可以用两个按钮来做,这很容易,但如果用一个按钮,我不知道会怎样。
谢谢,
最佳答案
这是一个简单的例子。您可以将所有点击时间存储在 reactiveVal
中,在点击 actionButton
时使用 observeEvent
更新此向量,并使用 diff
在此向量上计算以秒为单位的时间间隔。希望这对您有所帮助!
library(shiny)
ui <- fluidPage(
actionButton('mybutton','press me'),
textOutput('mytext'),
textOutput('mytext2')
)
server <- function(input,output)
{
click_times <- reactiveVal()
observeEvent(input$mybutton, {
click_times(c(click_times(),Sys.time()))
})
# print all intervals in seconds
output$mytext <- renderText({
if(length(click_times())<2)
{'Less than two clicks!'} else {
paste0('Time intervals: ', paste(round(diff(click_times()),2),collapse=' seconds, '),' seconds.')}
})
# print last interval in minutes:seconds format
output$mytext2 <- renderText({
if(length(click_times())<2)
{'Less than two clicks!'} else {
ct <- as.POSIXct(round(tail(diff(click_times()),1),2), origin = "1970-01-01", tz = "UTC")
paste0('Last interval: ' ,format(ct,'%M:%S')) }
})
}
shinyApp(ui,server)
关于r - 单击同一按钮之间的时间间隔 - shiny R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48267298/