Как сделать динамически генерируемые блестящие элементы интерфейса «текущими» - PullRequest
0 голосов
/ 23 марта 2019

Я пытаюсь динамически генерировать элементы интерфейса Shinyn, расположенные горизонтально один за другим (слева направо). flowlayout кажется идеальным для этого, однако, когда элементы динамически генерируются с использованием lapply, он обрабатывается как отдельный элемент и размещается вертикально один под другим.

Пример кода ниже

if (interactive()) {

  ui <- flowLayout(
    lapply(1:4,function(i){
      selectInput(paste0("input_1",i),"input", choices=1:5)
    })
  )
  shinyApp(ui, server = function(input, output) { })
}

Однако, когда они не генерируются динамически, они располагаются горизонтально (слева направо) один за другим, что я и ищу. Любые указатели относительно того, как это можно исправить?

РЕДАКТИРОВАТЬ: Я нашел этот хороший ответ на похожую проблему здесь , но мне интересно, возможно ли решение не 'eval-parse'

1 Ответ

0 голосов
/ 23 марта 2019
library(shiny)

ui <- fluidPage(
  do.call(flowLayout,
          lapply(1:4, function(i){
            selectInput(paste0("input_1",i), "input", choices=1:5)
          })
  )
)

shinyApp(ui, server = function(input, output) { })
...