Saber numero de cliques de um botão usando Shiny

Olá pessoal, tudo bem?

Eu gostaria de saber como faço para ter o numero de cliques que dei em determinado botão utilizando shiny:

Abaixo meu codigo:

---
title: "Untitled"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
---

```{r setup, include=FALSE}
library(flexdashboard)
library(shiny)
library(shinydashboard)
library(tidverse)
library(ggplot2)
library(mgcv)

dataset <- diamonds

Column {data-width=150}

Chart A

actionButton("action", "Action")

Column {data-width=350}

Chart B

 
ggplot() +
  geom_point(data = tibble(x = c(30,40,50),y = c(58,68,78)), aes(x =x, y = y))

Chart C

reactive({
  input$action
})

No codigo acima ele considera somente um clique. Há como obter essa informação?

Alguma ajuda?

Oi, Diogo

O valor que o widget actionButton vai retornar para input$action é justamente o número de cliques feitos no botão. Veja um exemplo aqui: Shiny - Widget Gallery

William acho q minha pergunta não foi muito clara.

O q eu quero é o seguinte:

Se eu clico 3 vezes ele me da o número 3. Ok
Se eu clico novamente 3 vezes ele acumula a soma e me da 6.

Eu gostaria q o input$action “zerasse”. Entende?

Clico 3 vezes me dá 3

input$action Zera

Clico 5 vezes me dá 5

input$action Zera

E assim por diante…

Ah, entendi!

Nesse caso é mais complicado, porque você tem que determinar o que são “cliques seguidos” e contar esses cliques. Fiz uma solução aqui usando Sys.time() e valores reativos. Defini que para serem seguidos, dois cliques precisam ter ocorrido com 0.5 segundo ou menos de intervalo.

library(shiny)

ui <- fluidPage(
  h1("Conta o num. de cliques seguidos"),
  br(),
  actionButton("botao", "Clique aqui"),
  br(),
  br(),
  textOutput("num_total_cliques")
)

server <- function(input, output, session) {
  hora <- reactiveVal(value = Sys.time())
  num_cliques <- reactiveVal(value = 0)

  observeEvent(input$botao, {
    tempo_entre_cliques <- Sys.time() - hora()
    if (tempo_entre_cliques > 0.5) {
      num_cliques(1)
    } else {
      num_cliques(num_cliques() + 1)
    }
    hora(Sys.time())
  })

  output$num_total_cliques <- renderText({
    glue::glue("Cliques seguidos: {num_cliques()}")
  })

}

shinyApp(ui, server)