【发布时间】:2016-07-14 21:36:28
【问题描述】:
我想创建一个闪亮的应用程序,其中包含两个加起来为 100 的幻灯片输入。这意味着,如果用户更改一个滑块的值,另一个滑块会自动更改以满足约束 (100-input$slider1)。
我在这里发现了一个类似的问题: Examplecode
使用以下代码:
服务器:
library(shiny)
# Define server logic required
shinyServer(function(input, output) {
output$slider2 <- reactiveUI(function() {
sliderInput("slider2", "Slider 2", min = 0, max = 100 - input$slider1, value = 0)
})
output$restable <- renderTable({
myvals<- c(input$slider1, input$slider2, 100-input$slider1-input$slider2)
data.frame(Names=c("Slider 1", "Slider 2", "Slider 3"),
Values=myvals)
})
})
用户界面:
library(shiny)
# Define UI for application
shinyUI(pageWithSidebar(
# Application title
headerPanel("Sliders should sum to 100!"),
# Sidebar with sliders whos sum should be constrained to be 100
sidebarPanel(
sliderInput("slider1", "Slider 1: ", min = 0, max = 100, value = 0, step=1),
uiOutput("slider2")
),
# Create table output
mainPanel(
tableOutput("restable")
)
))
这已经是一个可以的解决方案。但这里只能更改滑块 1 以自动更改滑块 2。另一方面,如果用户更改滑块 2,则滑块 1 不适合约束。 我怎样才能使一个可以同时更改两个滑块以使另一个适合约束?
【问题讨论】: