【问题标题】:Two inputs for the same value in ShinyShiny中相同值的两个输入
【发布时间】:2016-11-24 17:01:36
【问题描述】:

我是 Shiny 的新手,我对 html 一无所知,我在寻找一种方法来为我的应用程序中的相同输入值同时获取滑块和数字输入时遇到问题。我也希望,例如,当我将数值设置为 25 时,一旦按下按钮,滑块就会自动将自身设置为 25。 谢谢您的帮助。 我为我的 ui 尝试过,但它不起作用......

library(shiny)
shinyUI(fluidPage(
  numericInput(inputId = "num1",
               label = "Jour limite",
               value = 10, min = 1, max=500),
  sliderInput(inputId = "num",
              label= "Jour limite",
              value= 10 ,min=1 ,max=500
  ),
  actionButton(inputId="clicks",
               label= "Actualiser"),
  plotOutput("courbj")

))

不知道是否相关,但这是我的服务器代码:

print(getwd())
CourbeTot <- read.table("data/CourbeTot.csv",header=TRUE,sep=";")



shinyServer(
  function(input,output) {
  valeur <- eventReactive(input$clicks, {
    (input$num)
  })



  output$courbj <- renderPlot({
    plot(CourbeTot$DFSurvieTot.time,CourbeTot$DFSurvieTot.ProptionAuDelaDe,xlim=c(1,2*valeur()))
  })

})

【问题讨论】:

  • 我认为你需要这样的东西:stackoverflow.com/questions/21465411/…
  • 我不明白为什么这是和我一样的问题,但公平地说,我并没有完全理解他的问题是什么(英语不是我的母语,抱歉)。但如果我没记错的话,他的问题似乎比我的要复杂一些。

标签: html r input slider shiny


【解决方案1】:

您可以尝试在服务器站点上使用renderUI 设置反应式输入(滑块和数字)。

这里是UI.R

library(shiny)
shinyUI(fluidPage(
  uiOutput("INPUT"),
  uiOutput("SLIDER"),
  plotOutput("courbj")
))

这里是Server.R

library(shiny)
print(getwd())
CourbeTot <- 1:10

shinyServer(
  function(input,output) {

    valeur <- reactive({
      S <- input$num
      N <- input$num1
      max(c(10,S,N))
    })

    output$courbj <- renderPlot({
      plot(c(CourbeTot,valeur()))
    })

    # rective slider and numeric input 
    output$SLIDER = renderUI({
      sliderInput(inputId = "num",
                  label= "Jour limite",
                  value= valeur() ,min=1 ,max=500)
          })

    output$INPUT = renderUI({
      numericInput(inputId = "num1",
                   label = "Jour limite",
                   value = valeur(), min = 1, max=500)
    })

  })

由于您没有提供可重现的示例,我创建了一个。滑块和数字输入将分别根据另一个变化。这是完成的 1. 每个 max 函数将始终输出由两个输入之一设置的最大值。和。 2 使用renderUI 将输入移动到服务器端。您会看到,由于初始 NULL 行为存在问题,我删除了单击按钮。出现此错误时,您无法(或者我发现没有办法)选择一个值并在单击后更新另一个值。这似乎是一个闪亮的错误,已经问过here。代码并不完美,但我认为这是一个很好的基础,您可以根据自己的目的进行调整。

【讨论】:

  • 这看起来像是我打算做的,即使我可能没有把自己说得很清楚。我会研究一下,看看我是否可以在我的应用程序中实现它。谢谢。
  • 感谢您的回答,它对我有用,但我也想设置这两个输入的初始值。似乎它们总是从前面介绍的 min.value 开始。有什么方法可以为他们两者设置不同的起点或初始值??
猜你喜欢
  • 2016-06-17
  • 1970-01-01
  • 2019-02-11
  • 2021-11-05
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
  • 2017-12-23
  • 2015-01-29
相关资源
最近更新 更多