I made this example for you.
library(shiny)
library(purrr) # for map
library(glue) # for nice string interpolation
ui <- fluidPage(
numericInput("num_controls_choice",
"Choose how many controls to make",
value = 1,
min = 0,
max = 10),
uiOutput("dynamic_controls"),
verbatimTextOutput("view_dynamic_controls")
)
server <- function(input, output, session) {
output$dynamic_controls <- renderUI({
ncc <- req(input$num_controls_choice)
map(seq_len(ncc),
~{
nm <- glue("control_{.}")
sliderInput(inputId = nm ,
label = nm,
min = 0,
value = if(isTruthy(input[[nm]]))
{input[[nm]]} else{0},
max = 10)
})
})
output$view_dynamic_controls <- renderPrint({
ncc <- req(input$num_controls_choice)
cat("num controls choice :", ncc, "\n")
walk(
seq_len(ncc),
~ cat(
"\n", glue("control_{.}"),
input[[glue("control_{.}")]]
)
)
})
}
shinyApp(ui, server)