これは、毎秒 1 から 10 の間の数字を描画するおもちゃの例です。描画されたばかりの実際の数字と前に描画された数字の差が 1 に等しい場合にのみ、これらの数字を表示したいと考えています。描画される数字の順序は [5,7,8,2,3] です。[8,3]を連続して表示したい。反応値と分離機能がすべてだと思いますが、私が望んでいたことを実現できませんでした。解説で失敗した試み。
library(shiny)
ui <- shinyUI(fluidPage(
mainPanel(
textOutput("time"),
textOutput("num")
)
))
server <- function(input, output, session) {
autoInvalidate <- reactiveTimer(1000)
timestamp<-reactive({
autoInvalidate()
Sys.time()
})
random_num<-reactive({
autoInvalidate()
sample(x=seq(1,10),size = 1,replace = FALSE,pro)
})
# My attempt : obviously do not work
# values <- reactiveValues(old=1)
# observe({
# if (random_num()==values$old) {values$display=random_num()}
# else {values$old=random_num()}
# })
output$time <- renderText({paste("time :",timestamp())})
output$num <- renderText({paste("num :",random_num())})
#My attempt : obviously do not work
# output$num <- renderText({paste("num :",isolate(values$display))})
}
shinyApp(ui, server)
私のように見える質問があることは知っていますが、それはまったく異なります。