R 如何在shiny中为两个相关输入值(滑块和数字)设置初始值?

R 如何在shiny中为两个相关输入值(滑块和数字)设置初始值?,r,shiny,slider,numeric,shiny-reactivity,R,Shiny,Slider,Numeric,Shiny Reactivity,我已经在我闪亮的应用程序中定义了两个相互关联或相互依赖的输入。现在,我的问题是为这些滑块和数字输入设置一个特定的初始值。似乎它们总是从最小值开始,即使我现在也不知道为什么。如何指示这些输入参数的唯一起点或初始值 我已附上我的应用程序的简化部分,以便在此处为您提供我的问题的可复制版本: “ui.R” 以及“服务器.R” 我尝试了各种方法来确定初始值,但最终没有任何效果。任何帮助都将不胜感激 哇!我明白了,伙计们!您应该只在同一时间更新两个输入对象,并更新到相同的值。这意味着添加这两行解决了将初始值

我已经在我闪亮的应用程序中定义了两个相互关联或相互依赖的输入。现在,我的问题是为这些滑块和数字输入设置一个特定的初始值。似乎它们总是从最小值开始,即使我现在也不知道为什么。如何指示这些输入参数的唯一起点或初始值

我已附上我的应用程序的简化部分,以便在此处为您提供我的问题的可复制版本:

ui.R

以及“服务器.R


我尝试了各种方法来确定初始值,但最终没有任何效果。任何帮助都将不胜感激

哇!我明白了,伙计们!您应该只在同一时间更新两个输入对象,并更新到相同的值。这意味着添加这两行解决了将初始值设置为60的问题,例如:

updateSliderInput(session,"param_slide", value = 60)
updateNumericInput(session,"param_numeric", value = 60 )
因此,整个“server.R”将如下所示:

#
library(shiny)

shinyServer(
function(input,output,session) {

# Mutually dependent  slider and numeric inputs 
output$Param_s = renderUI({
sliderInput(inputId = "param_slide",
            label= "My input parameter",
            value= input$param_numeric,
            min=1,
            max=200)
})

output$Param_n = renderUI({
numericInput(inputId = "param_numeric",
             label= "My input parameter",
             value= input$param_slide,
             min=1,
             max=200)
})

updateSliderInput(session,"param_slide", value = 60)
updateNumericInput(session,"param_numeric", value = 60 )

})
您应该只知道使用

观察事件

当这些输入对象位于其他选项卡上时。在我使用“侧边栏菜单”的情况下,我使用了一行简单的代码,如下所示:

observeEvent(input$sidebar_id =="tab1",{
  updateSliderInput(session,"param_slide", value = 60)
  updateNumericInput(session,"param_numeric", value = 60 )
})

你从不把它们设定为任何特定的东西。就像两个人走进一家餐馆,每个人都说他们要点另一个人吃的东西。也许可以添加/更改每个
renderUI
val哦!谢谢@r2evans,我已经把解决方案放在这里了。对我来说,为它们设置初始值很有效。你应该接受你自己的答案(如果可以,我知道经常会有延迟)。(你也可以考虑[回答]你以前的问题的答案。)
#
library(shiny)

shinyServer(
function(input,output,session) {

# Mutually dependent  slider and numeric inputs 
output$Param_s = renderUI({
sliderInput(inputId = "param_slide",
            label= "My input parameter",
            value= input$param_numeric,
            min=1,
            max=200)
})

output$Param_n = renderUI({
numericInput(inputId = "param_numeric",
             label= "My input parameter",
             value= input$param_slide,
             min=1,
             max=200)
})

updateSliderInput(session,"param_slide", value = 60)
updateNumericInput(session,"param_numeric", value = 60 )

})
observeEvent(input$sidebar_id =="tab1",{
  updateSliderInput(session,"param_slide", value = 60)
  updateNumericInput(session,"param_numeric", value = 60 )
})