大佬教程收集整理的这篇文章主要介绍了在 R 中计算整数闪亮?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在下面有这个可重复的示例,我尝试计算整数。我有一个“开始”按钮、一个“重置”按钮和一个“停止”按钮。所以这个过程应该是这样的:1,2,3 -Stop- -Start- 4,5,6...
不幸的是,它看起来像这样:1,3 -Stop- -Start- 5,7,9 -Stop- -Start- 12,15,18 ... 所以每次我按停止和启动或停止- 重置 - 启动它会增加 1。
有人可以在该问题的代码中看到问题吗?谢谢。
ui.R
@H_674_11@library(shiny) ui<-fluIDPage( titlePanel("XXX"),hr(style="border-color: grey;"),sIDebarLayout( # panel with all @R_403_5983@s sIDebarPanel( # start / reset buttons on same row fluIDRow( @R_197_8620@n(7,uioutput("resetbutton")),@R_197_8620@n(5,uioutput("startbutton")) ),fluIDRow( @R_197_8620@n(7,actionbutton("stop","Stop")),@R_197_8620@n(3,actionbutton("start","Start")) ) ),# plot panel mainPanel( # tab layout tabsetPanel( tabPanel("XXX",# visual data on same row fluIDRow( @R_197_8620@n(3,textoutput("Count")) ) ) ) ) ) )
server.R
@H_674_11@server<-function(@R_403_5983@,output){ Val <- reactiveValues() Val$count<- 1 # dynamic reset button label output$resetbutton<-renderUI({ actionbutton("reset",label= "reset") }) forWARD<-function(){ Val$count <- Val$count + 1 } session<-reactiveValues() session$timer<-reactiveTimer(Inf) observeEvent(@R_403_5983@$start,{ session$timer<-reactiveTimer(1000) observeEvent(session$timer(),{ forWARD() }) }) observeEvent(@R_403_5983@$stop,{ session$timer<-reactiveTimer(Inf) }) ## when reset button is pressed (set everything to original values) observeEvent(@R_403_5983@$reset,{ Val$count<- 1 }) ##Count Output output$Count <-renderText({ paste("Count:",Val$count) }) }
我认为更简洁的方法是结合使用 @H_674_11@invalidateLater 和最小控制流来检查标志 @H_674_11@Val$run 是否在时钟运行。
@H_674_11@library(shiny) shinyApp(ui =fluidPage( titlePanel("XXX"),hr(style="border-color: grey;"),sidebarLayout( # panel with all inputs sidebarPanel( # start / reset buttons on same row fluidRow( @R_197_8620@n(7,uiOutput("resetbutton")),@R_197_8620@n(5,uiOutput("startbutton")) ),fluidRow( @R_197_8620@n(7,actionButton("stop","Stop")),@R_197_8620@n(3,actionButton("start","Start")) ) ),# plot panel mainPanel( # tab layout tabsetPanel( tabPanel("XXX",# visual data on same row fluidRow( @R_197_8620@n(3,textOutput("Count")) ) ) ) ) ) ),server = function(input,output) { Val <- reactiveValues() Val$count<- 1 Val$run <- falSE # dynamic reset button label output$resetbutton<-renderUI({ actionButton("reset",label= "Reset") }) observeEvent(input$start,{ Val$run <- TRUE }) observe({ if (Val$run) { isolate(Val$count <- Val$count + 1) invalidateLater(1000) } }) observeEvent(input$stop,{ Val$run <- falSE }) ## when reset button is pressed (set everything to original values) observeEvent(input$reset,{ Val$count<- 1 }) ##Count Output output$Count <-renderText({ paste("Count:",Val$count) }) })
我们也可以使 @H_674_11@reactiveTimer 的方法奏效:
@H_674_11@library(shiny) shinyApp(ui =fluidPage( titlePanel("XXX"),output) { Val <- reactiveValues() Val$count<- 0 # dynamic reset button label output$resetbutton<-renderUI({ actionButton("reset",label= "Reset") }) session<-reactiveValues() session$timer<-reactiveTimer(Inf) observeEvent(input$start,{ session$timer <- reactiveTimer(1000) Val$count<- Val$count -1 }) observe({ session$timer() isolate(Val$count <- Val$count + 1) }) observeEvent(input$stop,{ session$timer<-reactiveTimer(Inf) Val$count<- Val$count -1 }) ## when reset button is pressed (set everything to original values) observeEvent(input$reset,Val$count) }) })
以上是大佬教程为你收集整理的在 R 中计算整数闪亮?全部内容,希望文章能够帮你解决在 R 中计算整数闪亮?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。