R:如何创建删除按钮

R:如何创建删除按钮,r,shiny,R,Shiny,我从添加和删除按钮之间的差异中学到了什么 从下面的代码中可以看出,主要区别在于添加和删除按钮如何影响场景行。REMOVE按钮有效地使用scenarios[-lengthscenarios]命令删除最近一个场景,同时使用ADD按钮保持其他代码不变 一个非常简单的一行代码解决方案,但优雅的方法来解决问题。我又学到了很多。谢谢大家 observeEvent(input$add, { if (!(shock %in% scenarios)) { scenarios <<- sor

我从添加和删除按钮之间的差异中学到了什么

从下面的代码中可以看出,主要区别在于添加和删除按钮如何影响场景行。REMOVE按钮有效地使用scenarios[-lengthscenarios]命令删除最近一个场景,同时使用ADD按钮保持其他代码不变

一个非常简单的一行代码解决方案,但优雅的方法来解决问题。我又学到了很多。谢谢大家

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)
  })
这应该做到:

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)

嗨,陈!这听起来像是一个家庭作业问题,因此我将尝试引导您找到答案,而不直接告诉您:您在ui中声明移除按钮,但从不在服务器中使用它。你应该在哪里使用它?add输入位于要响应的observeEvent内。所以移除也应该是反应性的,对吗?我明白了我们都有坏老师,所以我完全理解。我发现这些方法非常有帮助,并且遵循一个合乎逻辑的过程。你会发现你需要一次掌握一个概念,这将允许你处理任何你需要的事情。目标不是回答具体问题,而是学习解决问题的工具:你可以在这里问家庭作业问题,只要你表现出你认真思考了问题并自己尝试了解决方案,人们就会帮助你。嗨,我只是想让你意识到这个问题。如果你能编辑你的答案并提供一些解释,那将是很有帮助的。谢谢亲爱的猪排,非常感谢你的帮助。我想知道删除按钮删除输入到震动盒中的特定数据会困难得多。例如,如果键入了31,则“删除”按钮将搜索31,如果可以找到,则将其删除。否则,将显示无法找到错误消息31。第二,你有什么建议我可以在哪里免费在线学习?谢谢你抽出时间。