我想在我shiny 的应用程序中实现一个"重置输入"按钮.

下面是一个只有两个输入的示例,我使用更新函数将值设置回默认值:

library(shiny)

runApp(list(

  ui = pageWithSidebar(

    headerPanel("'Reset inputs' button example"),

    sidebarPanel(
      numericInput("mynumber", "Enter a number", 20),
      textInput("mytext", "Enter a text", "test"),
      tags$hr(),
      actionButton("reset_input", "Reset inputs")
    ),

    mainPanel(
      h4("Summary"),
      verbatimTextOutput("summary")
    )

  ),

  server = function(input, output, session) {

    output$summary <- renderText({
      return(paste(input$mytext, input$mynumber))
    })

    observe({
      input$reset_input
      updateNumericInput(session, "mynumber", value = 20)
      updateTextInput(session, "mytext", value = "test")
    })
  }

))

我想知道的是,是否还有一个函数可以将所有内容设置为默认值?如果有多个输入,这将非常有用.

此外,我不确定使用观察功能来检测何时按下了操作按钮是否是处理操作按钮的"正确方式"?

推荐答案

shiny中没有这样的函数,但是,这里有一种方法可以实现这一点,而无需在本质上定义两次输入.诀窍是使用uiOutput并将要重置的输入封装在div中,每次按下重置按钮时,其id都会更改为新的内容.

library(shiny)

runApp(list(

  ui = pageWithSidebar(

    headerPanel("'Reset inputs' button example"),

    sidebarPanel(
      uiOutput('resetable_input'),
      tags$hr(),
      actionButton("reset_input", "Reset inputs")
    ),

    mainPanel(
      h4("Summary"),
      verbatimTextOutput("summary")
    )

  ),

  server = function(input, output, session) {

    output$summary <- renderText({
      return(paste(input$mytext, input$mynumber))
    })

    output$resetable_input <- renderUI({
        times <- input$reset_input
        div(id=letters[(times %% length(letters)) + 1],
            numericInput("mynumber", "Enter a number", 20),
            textInput("mytext", "Enter a text", "test"))
    })

  }
))

R相关问答推荐

如何生成包含可能条目列表而不是计数的表?

强制相关图以显示相关矩阵图中的尾随零

以R表示的gglikert地块调整总数

使用gggplot 2在R中重新调整面板和y轴文本大小

从多个前置日期中获取最长日期

在(g)子中使用asserable字符

x[[1]]中的错误:脚注越界

如何在xyplot中 for each 面板打印R^2

如何删除gggvenn与gggplot绘制的空白?

将向量组合到一个数据集中,并相应地命名行

使用tidy—select创建一个新的带有mutate的摘要变量

在R中使用download. file().奇怪的URL?

在RStudio中堆叠条形图和折线图

R:从geom_ol()中删除轮廓并导出为pdf

LOF中的插图短文字幕

如何通过匹配R中所有可能的组合来从宽到长旋转多个列?

使用Scale_*_MANUAL时在图例中保留未使用的系数级别

有没有一种方法可以同时对rhandsontable进行排序和从rhandsontable中删除?

如何在R中改变fviz_pca_biplot中圆的边界线的 colored颜色 ?

如何将一个方阵分解成没有循环的立方体