jeudi 24 janvier 2019

if else in shiny reactive

I have a rather simple problem but can not figure out why it is not working

library(shiny)
library(leaflet)


pts <- data.frame(
  id = letters[seq(from = 1, to = 10)],
  x = rnorm(10, mean = -93.625),
  y = rnorm(10, mean = 42.0285),
  stringsAsFactors = F
)




# Define UI
ui <- fluidPage(uiOutput('Select'))

server <- function(input, output, session) {
  pts         

  output$Select <- renderUI({
    Range <- sort(unique(pts$id))
    selectInput("dataselect",
                "select",
                choices = Range,
                selected = 'a')
  })


  mydata <- reactive({
    if (input$dataselect != 'a') {
      data <- pts[pts$id == input$dataselect,]
    }
    else
    {
      data <- pts
    }


  })

  observe(print(mydata()))


}


shinyApp(ui = ui, server = server)

I basically try to subset my data set if anything else than 'a' is selected with the selected value. If 'a' is selected I want the whole df returned.

Just run into

Warning: Error in if: argument is of length zero [No stack trace available]

Aucun commentaire:

Enregistrer un commentaire