首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R闪亮:如何创建一个删除按钮

R闪亮:如何创建一个删除按钮
EN

Stack Overflow用户
提问于 2019-10-10 13:49:17
回答 1查看 146关注 0票数 1

我从加法和移除按钮之间的区别中学到了什么。

正如我们从下面的代码中看到的,主要的区别是添加和删除按钮如何影响场景行。REMOVE按钮有效地使用scenarios[-length(scenarios)]命令删除即时的最后一个场景,同时使其他代码与ADD按钮保持不变。

一种非常简单的单行代码解决方案,但解决问题的方法却很优雅。我又学到了很多东西。谢谢你们所有人。

代码语言:javascript
复制
observeEvent(input$add, {
if (!(shock %in% scenarios)) {
      scenarios <<- sort(c(scenarios, shock))
      updateCheckboxGroupInput(session, "scenarios",choices = scenarios,selected = scenarios)
    }

  observeEvent(input$remove,{
    scenarios <<- scenarios[-length(scenarios)]
    updateCheckboxGroupInput(session, "scenarios",choices = scenarios,selected = scenarios)
  })
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-10 14:15:49

这应该可以做到:

代码语言:javascript
复制
library(shiny)
ui <- fluidPage(
  numericInput("shock", "Shock", value = round(runif(1) * 1000), 0),
  actionButton("add", "Add"),
  actionButton("remove", "Remove"),
  checkboxGroupInput("scenarios", "Scenarios", choices = c(), selected = c()),
  verbatimTextOutput("o1")
)
scenarios <- c(-100, -50, 0, 50, 100)

server <- function(input, output, session) {
  updateCheckboxGroupInput(session, "scenarios",
                           choices = scenarios,
                           selected = scenarios)

  observeEvent(input$add,{

    shock <- isolate(input$shock)

    if (!(shock %in% scenarios)) {
      scenarios <<- sort(c(scenarios, shock))
      updateCheckboxGroupInput(session, "scenarios",choices = scenarios,selected = scenarios)
    }
    # put a new random value
    updateNumericInput(session, "shock", value = round(runif(1) * 1000))
  })

  observeEvent(input$remove,{
    scenarios <<- scenarios[-length(scenarios)]
    updateCheckboxGroupInput(session, "scenarios",choices = scenarios,selected = scenarios)
  })

  output$o1 <- renderPrint({
    x <- input$scenarios
    str(x)
    cat(paste0("length: ", length(x), "\n"))
    cat(paste0(x, "\n"))
  })
}
shinyApp(ui, server)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58324528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档