показать числовые входы в случайном порядке в Shiny - PullRequest
0 голосов
/ 30 октября 2019

Я хотел бы рандомизировать порядок числовых входов в блестящем приложении. Это означает, что если я начну с этого рабочего примера:

library(shiny)

ui <- fluidPage(
  numericInput("inpA", "input A:", 10, min = 1, max = 100),
  numericInput("inpB", "input B:", 10, min = 1, max = 100),
  numericInput("inpC", "input C:", 10, min = 1, max = 100),
  numericInput("inpD", "input D:", 10, min = 1, max = 100)
)

server <- function(input, output) {
}

# Run the application
shinyApp(ui = ui, server = server)

Мне бы хотелось, чтобы при каждом запуске приложения входные данные отображались на экране в другом порядке:

[вход A:]

[вход B:]

[вход D:]

[вход C:]

или

[вход B:]

[вход A:]

[вход C:]

[вход D:]

и т. Д.

Спасибо

G

1 Ответ

0 голосов
/ 31 октября 2019

Чтобы рандомизировать ваш numericInput ордер в блестящем, создайте динамический uiOutput в коде сервера:

library(shiny)

ui <- fluidPage(
    uiOutput("dynInputs")
)

server <- function(input, output) { 
    inpNames <- paste(LETTERS[1:4])

    output$dynInputs <- renderUI({
        div(
            lapply(sample(inpNames), function(x) { 
                numericInput( assign(paste0("inp", x), paste0("inp",x)),
                              label=paste("input",x), value=10, min=1, max=100)
            })

        )
    })
}

shinyApp(ui = ui, server = server)

Вот как это выглядит:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...