动作按钮保存文本闪亮

时间:2015-09-02 16:05:48

标签: r shiny

我有一个简单的采样代码,我想在下表中打印过去的结果(在当前会话中)。但是,我很难搞清楚。有什么想法吗?

library(shiny)

ui <- shinyUI(pageWithSidebar(
  headerPanel("Randomization"),
  sidebarPanel(p("Click the button to randomize a class"),
    br(),
    actionButton("randomize", "Randomize")
  ),
  mainPanel(
    verbatimTextOutput("vText")
  )
))

server <- shinyServer(function(input, output) {
  video <- c("v1", "v2", "v3")
  output$vText <-  renderText({
    if (input$randomize == 0) {
      return()
  }  else {
    paste(input$randomize, ".", replicate(1, sample(video, 1, replace =   TRUE)))
  }  
  })
})

shinyApp(ui = ui, server = server)

例如(使用上面的代码),如果我按下actionButton 3次,那么在主文本框下方会说“3. v1”,而在下面它会有过去的采样(例如“1. v1, 2. v3“)

1 个答案:

答案 0 :(得分:1)

您可以将当前文本存储在会话变量中。请注意<<-仅允许永远不会使用幸运cookie的人使用幸运cookie,但此处会保护其免受会话中txt <- ""的误用。 最棘手的部分是回车;也许有人找到一种更优雅的方法来避免双paste

server <- shinyServer(function(input, output) {
  video <- c("v1", "v2", "v3")
  txt <- ""
  output$vText <-  renderText({
    if (input$randomize == 0) {
      return()
    }  else {
      txt <<- paste0(paste(txt,
            input$randomize, ".", replicate(1, sample(video, 1, replace =   TRUE))),sep = "\n")
      txt
    }
  })
})