Shiny 中相同值的两个输入
Two inputs for the same value in Shiny
我是 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()))
})
})
您可以尝试在服务器站点上使用 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
行为存在问题。出现此错误时,您不能(或者我找不到办法)select 一个值并在单击后更新另一个值。这似乎是一个闪亮的错误,已经被问到 。代码并不完美,但我认为这是一个很好的基础,您可以根据自己的目的进行调整。
我是 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()))
})
})
您可以尝试在服务器站点上使用 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
行为存在问题。出现此错误时,您不能(或者我找不到办法)select 一个值并在单击后更新另一个值。这似乎是一个闪亮的错误,已经被问到