你的第一个条件应该是:
paste0("input.popDist",i,"== 'uniforme'& input.c",i,"==1")
第二个:
paste0("input.popDist",i," == 'normal'& input.c",i,"==1")
所以他们变成了i=1
:
"input.popDist1== 'uniforme'& input.c1==1"
and
"input.popDist1 == 'normal'& input.c1==1"
分别。
工作示例:
library(shiny)
library(shinyjs)
server <- shinyServer(function(input, output) {
output$input_value2 <- renderUI({
fluidRow(
lapply(1:8, function(i) {
column(width = 4,
output[[paste0('b', i)]] <- renderUI({strong(paste0('Variable N ', i))}),
checkboxInput(label = 'Inclued',paste0('c', i)),
selectInput(paste0('popDist', i), "Distribution",list("Normal" = "normal","Uniforme" = "uniforme")),
conditionalPanel(
condition = paste0("input.popDist",i,"== 'uniforme'& input.c",i,"==1"),
numericInput(paste0('min', i), label = "Min:", value = 1),
numericInput(paste0('max', i), label = "Max:", value = 2)
),
conditionalPanel(
condition = paste0("input.popDist",i," == 'normal'& input.c",i,"==1 "),
numericInput(paste0('mean', i), label ="mean:", value = 0),
numericInput(paste0('sd', i), label = "st. dev.:", value = 1)
)
)
})
)
})
})
library(shiny)
ui <- shinyUI(fluidPage(
useShinyjs(),
titlePanel("TEST conditional panel"),
uiOutput("input_value2")
))
shinyApp(ui,server)