两个输入在Shiny中具有相同的值

时间:2016-07-21 08:09:23

标签: html r input slider 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()))
  })

})

1 个答案:

答案 0 :(得分:2)

您可以尝试使用服务器站点上的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)
    })

  })

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