library(shiny)
ui <- fluidPage(
titlePanel("Test"),
sidebarLayout(
sidebarPanel(
sliderInput("Slider1", "Slider1", min = 1, max = 10, value = 5),
sliderInput("Slider2", "Slider2", min = 1, max = 10, value = 1),
),
mainPanel( )
)
)
server <- shinyServer(function(input, output, session) {
v <- reactiveValues(x=NULL)
observeEvent(input$Slider1, {v$x <- input$Slider1
updateSliderInput(session, "Slider2", value=v$x )
print(paste0(v$x, " slider1"))
})
observeEvent(input$Slider2, {v$x <- input$Slider2
updateSliderInput(session, "Slider1", value=v$x )
print(paste0(v$x, " slider2"))
})
})
shinyApp(ui, server)--
You received this message because you are subscribed to the Google Groups "Shiny - Web Framework for R" group.
To unsubscribe from this group and stop receiving emails from it, send an email to shiny-discuss+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/shiny-discuss/c4162b39-58e2-48dc-a853-f394d455bb90%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Shiny - Web Framework for R" group.
To unsubscribe from this group and stop receiving emails from it, send an email to shiny-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/shiny-discuss/a428b6f5-efdc-4dac-82e8-c7f2c3670c73%40googlegroups.com.
library(shiny) ui <- fluidPage( titlePanel("Test"), sidebarLayout( sidebarPanel( sliderInput("Slider1", "Slider1", min = 1, max = 10, value = 5), sliderInput("Slider2", "Slider2", min = 1, max = 10, value = 1), uiOutput("Slider3") ), mainPanel() ) )server <- shinyServer(function(input, output, session) { v <- reactiveValues(x=NULL) output$Slider3 <- renderUI({sliderInput("Slider3", label="Slider3", min=1, max=10, value=v$x)}) observeEvent(input$Slider1, {print(paste0("Slider1 initial value ", input$Slider1)); v$x <- input$Slider1 }) observeEvent(input$Slider2, {print(paste0("Slider2 initial value ", input$Slider2)); v$x <- input$Slider2 }) observeEvent(v$x, { print(input$Slider1) print(input$Slider2) print(input$Slider3) if (v$x != input$Slider1) { updateSliderInput(session, "Slider1", value = v$x) } # if (v$x != input$Slider2) { # updateSliderInput(session, "Slider2", value = v$x) # } }) })library(shiny)
ui <- fluidPage(
titlePanel("Test"),
sidebarLayout(
sidebarPanel(
sliderInput(inputId = "Slider0", label = "Plots per page:", min = 1, max = 3, value = 1),
sliderInput(inputId = "Slider1", "Slider1", min = 1, max = 100, value = 50),
sliderInput(inputId = "Slider2", "Slider2", min = 1, max = 100, value = 50)
),
mainPanel(uiOutput("plots"))
)
)
server <- shinyServer(function(input, output, session) {
max_plots <- 3 # maximum allowed number of plots per page
plot_num <- reactiveValues(value=NULL)
list_num <- reactiveValues(value=NULL)
list_index <- reactiveValues(value=NULL)
observeEvent(input$Slider0, { plot_num$value <- input$Slider0
list_num$value <- round(100/input$Slider0)
})
observeEvent(list_num$value, { updateSliderInput(session, "Slider1", max=list_num$value)
updateSliderInput(session, "Slider2", max=list_num$value)
})
observeEvent(input$Slider1, { print(paste0("Slider1 initial value ", input$Slider1))
list_index$value <- input$Slider1
})
observeEvent(input$Slider2, { print(paste0("Slider2 initial value ", input$Slider2))
list_index$value <- input$Slider2
})
observeEvent (list_index$value, {
if(list_index$value != input$Slider1) { updateSliderInput(session, "Slider1", value=list_index$value) }
else {updateSliderInput(session, "Slider2", value=list_index$value)}
})
output$plots <- renderUI({
plot_output_list <- lapply(1:plot_num$value, function(i) {
plotname <- paste("plot", i, sep="")
plotOutput(plotname)
})
do.call(tagList, plot_output_list) # Convert the list to a tagList - this is necessary for the list of items to display properly.
})
for (i in 1:max_plots) {
local ({ j <- i; plotname <- paste("plot", j, sep="")
output[[plotname]] <- renderPlot({
print("plotting")
d <- rnorm(100, mean = list_index$value, sd =1)
plot(density(d))
})
})
}
})
shinyApp(ui, server)library(shiny)
ui <- fluidPage(
titlePanel("Test"),
sidebarLayout(
sidebarPanel(
sliderInput(inputId = "Slider0", label = "Plots per page:", min = 1, max = 3, value = 1),
sliderInput(inputId = "Slider1", "Slider1", min = 1, max = 100, value = 50),
textInput(inputId = "Text1", "Text1", value = 50)
),
mainPanel(uiOutput("plots"))
)
)
server <- shinyServer(function(input, output, session) {
max_plots <- 3 # maximum allowed number of plots per page
plot_num <- reactiveValues(value=NULL)
list_num <- reactiveValues(value=NULL)
list_index <- reactiveValues(value=NULL)
observeEvent(input$Slider0, { plot_num$value <- input$Slider0
list_num$value <- round(100/input$Slider0)
})
observeEvent(list_num$value, { updateSliderInput(session, "Slider1", max=list_num$value)
})
observeEvent(input$Slider1, { print(paste0("Slider1 initial value ", input$Slider1))
list_index$value <- input$Slider1
})
observeEvent(input$Text1, { print(paste0("Text1 initial value ", input$Text1))
list_index$value <- as.numeric(input$Text1)
})
observeEvent (list_index$value, {
if(list_index$value != input$Slider1) { updateSliderInput(session, "Slider1", value=list_index$value) }
else {updateTextInput(session, "Text1", value=list_index$value)}
})
output$plots <- renderUI({
plot_output_list <- lapply(1:plot_num$value, function(i) {
plotname <- paste("plot", i, sep="")
plotOutput(plotname)
})
do.call(tagList, plot_output_list) # Convert the list to a tagList - this is necessary for the list of items to display properly.
})
for (i in 1:max_plots) {
local ({ j <- i; plotname <- paste("plot", j, sep="")
output[[plotname]] <- renderPlot({
print("plotting")
d <- rnorm(100, mean = list_index$value, sd =1)
plot(density(d))
})
})
}
})
shinyApp(ui, server)