如何在闪亮的R中修改矢量

时间:2014-09-17 10:32:44

标签: r shiny

我想在ui.R中添加两个按钮,闪亮的R.按钮“添加”和“删除”以修改矢量。

目前只有一个按钮可以,如何在代码中添加删除按钮?似乎renderText()只能有一个依赖。

以下代码中有一个按钮“添加”,如何添加“删除”?

server.R

equity_list = c()

shinyServer(function(input, output) { 
output$nText <- renderText({
input$addButton
isolate({equity_list <<- append(equity_list, input$symb)}) 
  })
})

ui.R

shinyUI(pageWithSidebar(
  headerPanel("actionButton test"),
  sidebarPanel(
    textInput("symb", "Symbol", "SPY"),
    br(),
    actionButton("addButton", "Add")
    actionButton("DelButton", "Delete"),
    p("Click the button to update the value displayed in the main panel.")
  ),
  mainPanel(
    verbatimTextOutput("nText")
  )
))

1 个答案:

答案 0 :(得分:1)

我确定有更好的解决方案,所以我会发布我的快速解决方案。 您可以创建两个可观察按钮的按钮。我创建了两个加或减的按钮。然后在反应式表达式中,我已经隔离了minus选项,同时plus选项会在按下时随时关闭,因此它被设置为>0

rm(list = ls())
library(shiny)
equity_list <- c("AAPL","GOOG")

runApp(list(ui = pageWithSidebar(
  headerPanel("Testing how to add and subtract"),
  sidebarPanel(actionButton("minus", "-"),actionButton("plus", "+"),
               textInput("symb", "Symbol", "SPY")),
  mainPanel(verbatimTextOutput("nText"))

      ),
  server = function(input,output,session) {

    observe({
      input$plus
      equity_list <<- append(equity_list, input$symb)
    })

    observe({
      input$minus
      equity_list <<- equity_list[-length(equity_list)]
    })

    my_equity_list <- reactive({

      if(input$minus==0)
      {
        equity_list
      }
      isolate({
        input$minus
        equity_list 
      })

      if(input$plus > 0)
      {
        equity_list 
      }
    })
    output$nText <- renderText({
      my_equity_list()
    }) 
  }
)
)