examples estados espacio ejemplos ecuacion discreto diferencial control ackerman r render shiny dplyr

estados - shiny r



Desarrollar cambio reactivo de los valores mínimo/máximo de la entrada del control deslizante (1)

Como está usando renderUI para hacer el control deslizante, debe verificar que la input$inslider exista antes de filtrar los datos. Cuando lo cargas por primera vez, no lo hace porque es creado por el renderUI

Prueba esto para tu server.R :

library(shiny) library(dplyr) df1 <- data.frame(id = c(1,2,3,4,5), number = c(20,30,23,25,34)) df2 <- data.frame(id = c(1,2), number = c(33,40)) shinyServer(function(input, output) { datasetInput <- reactive({ switch(input$dataset, "df1" = df1, "df2" = df2) }) output$slider <- renderUI({ sliderInput("inslider","Slider", min = min(datasetInput()$number), max = max(datasetInput()$number), value = c(min(datasetInput()$number), max(datasetInput()$number)) )}) data <- reactive({ filteredData<-datasetInput() if(!is.null(input$inslider)){ filteredData<-filteredData %>% filter(number >= input$inslider[1] , number <= input$inslider[2] ) } filteredData }) vis <- reactive({ data()%>% ggvis(~id, ~number) %>% layer_points(fill = ~factor(id)) %>% scale_nominal("fill", range = c("red","blue","green","yellow","black")) }) vis %>% bind_shiny("plot") })

Gracias a esta solución finalmente descubrí cómo crear el botón de SliderInput dinámico. Lamentablemente, tengo un problema con el uso de este valor de input después de todo (para cambiar la condición del subconjunto en dplyr ). ¿Alguien podría decirme qué hago mal?

ui.R

library(dplyr) library(shiny) library(ggvis) shinyUI(fluidPage( titlePanel("Old Faithful Geyser Data"), # Sidebar with a slider input for number of bins sidebarLayout( sidebarPanel( radioButtons("dataset", label = h4("Product level"), choices = list("Item" = "df1", "Task" = "df2")), uiOutput("slider") ), mainPanel( ggvisOutput("plot") ) ) ))

servidor.R

library(shiny) library(dplyr) df1 <- data.frame(id = c(1,2,3,4,5), number = c(20,30,23,25,34)) df2 <- data.frame(id = c(1,2), number = c(33,40)) shinyServer(function(input, output) { datasetInput <- reactive({ switch(input$dataset, df1 = df1, df2 = df2) }) output$slider <- renderUI({ sliderInput("inslider","Slider", min = min(datasetInput()$number), max = max(datasetInput()$number), value = c(min(datasetInput()$number), max(datasetInput()$number)) }) data <- reactive({ datasetInput %>% filter(number >= input$inslider[1], number <= input$inslider[2]) }) vis <- reactive({ data %>% ggvis(~id, ~number) %>% layer_points(fill = ~factor(id)) %>% scale_nominal("fill", range = c("red","blue","green","yellow","black")) }) vis %>% bind_shiny("plot") })