R 将滑块和数字输入连接在一起

R 将滑块和数字输入连接在一起,r,shiny,R,Shiny,我想要一个快速,直观的输入滑块,但也相应的数字输入精确的计算。我已经设法将滑块值绑定到输入$,因此它们将遵循数值输入中写入的任何内容。然而,我似乎无法让它反过来工作 用户界面 服务器 output$slider <- renderUI({ tagList( # Need this for multiple reactive sliders sliderInput("slider_a", label = "Load force

我想要一个快速,直观的输入滑块,但也相应的数字输入精确的计算。我已经设法将滑块
绑定到
输入$
,因此它们将遵循数值输入中写入的任何内容。然而,我似乎无法让它反过来工作

用户界面

服务器

output$slider <- renderUI({
    tagList( # Need this for multiple reactive sliders
        sliderInput("slider_a",
                    label = "Load force position:",
                    min = 0,
                    max = input$num_l,
                    value = input$num_a, # THIS WORKS
                    step = 0.1),

        sliderInput("slider_x",
                    label = "Deflection calculation position:",
                    min = 0,
                    max = input$num_l,
                    value = input$num_x, # THIS ALSO WORKS
                    step = 0.1)
    )
})
output$slider使用更新功能:

ui <- fluidPage(

      numericInput("num_i",
                   label = "my input:",
                   value = 4,
                   min = 0,
                   max = 10),

      sliderInput("num_s",
                  label = "my slider:",
                  value = 4,
                  min = 0,
                  max = 10)
    )


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

      observe({

        updateSliderInput(
          session = session,
          inputId = "num_s",
          value = input$num_i
        )
      })


      observe({

        updateSliderInput(
          session = session,
          inputId = "num_i",
          value = input$num_s
        )
      })
    }


shinyApp(ui, server)
将其保存在www文件夹中,然后使用includeDescript()将该文件包括在应用程序中。

可能的重复项
ui <- fluidPage(

      numericInput("num_i",
                   label = "my input:",
                   value = 4,
                   min = 0,
                   max = 10),

      sliderInput("num_s",
                  label = "my slider:",
                  value = 4,
                  min = 0,
                  max = 10)
    )


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

      observe({

        updateSliderInput(
          session = session,
          inputId = "num_s",
          value = input$num_i
        )
      })


      observe({

        updateSliderInput(
          session = session,
          inputId = "num_i",
          value = input$num_s
        )
      })
    }


shinyApp(ui, server)
$('document').ready(function(){
  $('#num_s').change(function(){
    var new_val = $(this).val();
    $('#num_i').val(new_val);
  });
});