Shiny

2016-03-25 18 views
2

'da reaktif ateşlemeyi saymak için basit bir sayaç uygulayın Kullanıcının parlak ekranımı kaç kez yenilediğini izlemek istiyorum. Shiny

ben sadece reaktif alana

number <- 0

dışında bir sayaç kurmak ve bir her zaman reaktif blok yangınlarda kod ekleyerek güncellemek zorunda düşündüm.

Ama işe yaramıyor.

Fikirler:

sayacı global var yapmak?
aptalca bir fikir, işe yaramıyor
number <- 0 reaktif alanın içine koyun? çözeltisini

Buraya gitmek hangi yönde emin değilim değil elbette
. Herhangi bir fikri olan var mı? Eğer reaktif ifadelerin içinden düzenli atama operatörü ile bunlara atayabilirsiniz nedenle başvuruya göre geçmiş olsun -

require(shiny) 
number <- 0 
runApp(list(ui = pageWithSidebar(
    headerPanel("This is a test"), 
    sidebarPanel(
    helpText("This is a test"), 

    sliderInput("range", 
       label = "Pick a number:", 
       min = 0, max = 100, value = 0) 
), 
    mainPanel(textOutput("text1"), 
      htmlOutput("text") 
) 
), 
server = function(input, output) { 
    number <- number + 1 
    output$text <- renderUI({ 
    str <- paste("You have chosen:", 
       input$range) 
    HTML(paste(str, sep = '<br/>')) 
    View(number) 
    }) 
} 
) 
) 

cevap

4

Parlak bir ortamda gibidir reactiveValues sahiptir. Örneğin,

library(shiny) 
ui <- pageWithSidebar(
    headerPanel("This is a test"), 
    sidebarPanel(sliderInput("range", "Pick", 0, 100, 10)), 
    mainPanel(htmlOutput("text")) 
) 

server <- function(session, input, output) { 
    vals <- reactiveValues(count = -1) 
    observeEvent(input$range, vals$count <- vals$count + 1) 

    output$text <- renderUI({ 
    HTML(paste(sprintf("You have chosen: %s</br>", vals$count))) 
    }) 
} 

shinyApp(ui, server) 

Sidenote: Ayrıca <<- kullanarak söz gibi global bir değişken olarak bunu yapabilir, ama bunun nedeni ne <<- aramalar geriye ortamlar üzerinden bir kötü bir fikir olduğunu söyleyebilirim ve ben o olabilir düşünüyorum şaşırtıcı sonuçlara sahip.

+0

'geriye doğru aramalar' ile ne demek istiyorsunuz? –

+0

@MonicaHeddneck "yukarı doğru" muhtemelen daha iyi bir tanımlamadır, ancak üst ortamlarda başarılı bir şekilde arar ve sembolü bulamazsa son ortamda atar. Tahmin edebileceğiniz gibi genellikle önlenir. – jenesaisquoi

+1

Sadece reaktifDeğeler kullanmanın ve başka bir düşüncenin sesini duymadığını söyleyen << –