Использование ввода для определения итераций - PullRequest
0 голосов
/ 01 октября 2019

Я хотел бы определить количество итераций lapply должно идти в интерактивном режиме в R-блестящий. Пока что это число работает, и вывод генерируется аналогичным образом. Рендеринг этих выходных данных также возможен, однако количество итераций не равно.

Код на данный момент выглядит следующим образом:

ui<-fluidPage(
    numericInput(inputId = "maxk", label = "number of k's", value=5),
    actionButton(inputId="start",label="Start"),
    maxk<-5,

#Instead of this (maxk<-5), I would like write something to get maxk from the output

    lapply(1:maxk,function(k){
                        list(
                        uiOutput(paste("test_",k))
                        )
                            })
                )
server <- function(input, output, session){

    observeEvent(input$start,{
        maxk<-input$maxk

#And here something should be apply to get maxk into the correct way into the output I assume

        lapply(1:maxk,function(k){
        output[[paste("test_",k)]]<-renderText(k)   
        })
    })

    }
shinyApp(ui = ui, server = server)

Я пробовал RenderText(), но получаю ошибку, если я пытаюсь использовать это в качестве входных данных для lapply().

Какие еще есть возможности, получить числовой вывод внутри серверной части, который можно использовать в пользовательском интерфейсе? часть

1 Ответ

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

Я думаю, что это должно дать вам то, что вы хотите. В конечном итоге, чем короче вы можете сделать свой блестящий код, тем лучше! (Тем не менее, я уверен, что кто-то может найти еще более короткий путь, но это работает.)

ui <- fluidPage(
  numericInput(
    inputId = "maxk", 
    label = "number of k's", 
    value = 5
    ),
  verbatimTextOutput("k_output")
)

server <- function(input, output){

  calc <- reactive({
    lapply(
      1:input$maxk,
      function(k){
        paste0("test_", k)
        }
      )
    })

    output$k_output <- renderPrint(calc())

}

shinyApp(ui = ui, server = server)

Надеюсь, это поможет вам.

...