Я хотел бы создать ползунок диапазона, в котором при выборе одного конца ползунка обновляется другой конец того же ползунка.Я знаю, что хитрость заключается в том, чтобы наблюдать изменение на одном конце и использовать его для обновления другого конца.Тем не менее, я получаю поведение, когда ползунки переворачиваются взад и вперед, и я не могу понять, почему это не устанавливается.
Ради этого примера я бы хотел, чтобы ползунки были центрированыв пределах шкалы 0-100, поэтому, когда input$slider[1]
установлен на 10
, input$slider[2]
перемещается на 90
, а когда input$slider[2]
перемещается на 80
, input$slider[1]
перемещается на 20
,Пример (глючный) кода ниже:
library(shiny)
ui <- fluidPage(
uiOutput("slidertest"),
verbatimTextOutput("values")
)
server <- function(input, output, session) {
sliderends <- reactiveValues(end=c(NULL,NULL))
observe({
sliderends$end[1] <- 100-input$slider[2]
})
observe({
sliderends$end[2] <- 100-input$slider[1]
})
output$slidertest <- renderUI({
sliderInput("slider","Update Ends?", min = 0, max=100, value=c(sliderends$end[1],sliderends$end[2]))
})
output$values <- renderText({paste(input$slider[1], input$slider[2], sliderends$end[1], sliderends$end[2], sep=";")})
}
shinyApp(ui, server)
Объяснение того, что я делаю неправильно, и рабочие предложения будут с благодарностью.
Спасибо!