Mam działkę w Shiny UI. Jeśli zmienię dowolny parametr wejściowy i przez wykres reakcji zmieni się. Ale zastanówmy się nad następującą sytuacją: - Fabuła w Shiny UI plotowaniu pozwala powiedzieć ruch cenowy w ciągu dnia. W tym celu zapytanie o niektóre żywe źródła danych. Teraz Jeśli utworzę przycisk odświeżania, a następnie, jeśli upłynie czas, ciągle klikam przycisk odświeżania. Wykres zostanie zaktualizowany wraz z pojawieniem się nowych danych w miarę upływu czasu w tym źródle danych. Teraz moje pytanie brzmi: nie chcę ciągle klikać przycisku odświeżania. Ale chcę uruchomić pętlę z timerem, aby sprawdzał w ustalonym przedziale czasu i jak tylko pojawią się nowe dane, wykres zostanie automatycznie zaktualizowany. Coś w rodzaju wykresów finansowych Google, które aktualizują się z biegiem czasu.Aktualizacja wykresu/wykresu w ustalonym przedziale czasu
więc problem może być uproszczona, co następuje: - Rozważmy ten przykład z błyszczące samego: - ui.R
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("Hello Shiny!"),
sidebarPanel(
sliderInput("obs",
"Number of observations:",
min = 1,
max = 1000,
value = 500)
),
mainPanel(
plotOutput("distPlot")
)
))
i server.R
library(shiny)
shinyServer(function(input, output) {
output$distPlot <- renderPlot({
# generate an rnorm distribution and plot it
dist <- rnorm(input$obs)
hist(dist)
})
})
Teraz chcę wygenerować inną próbkę losową z rozkładu normalnego bez żadnej aktywności wejściowej. Zasadniczo chcę ponownie zadzwonić pod numer
dist <- rnorm(input$obs)
hist(dist)
bez zmiany sliderInput. Pomóż mi dowiedzieć się, jak to zrobić.
można użyć 'reactiveTimer'. Zobacz '? ReactiveTimer' – jdharrison
Myślę, że szukasz' invalidateLater' – GSee
Tak, zarówno invalidateLater, jak i reactiveTimer służą mojemu celowi. Jedyną rzeczą jest to, że invalidateLater musi być zaimplementowany w środowisku reaktywnym, podczas gdy reactiveTimer ma tworzyć reaktywne źródło [tylko powtarzanie fakt dla wyjaśnienia]. Jestem nowy w R Shiny, dlatego zajęło mi to trochę czasu. – IndranilGayen