Как динамически назначить имя реактивного объекта? - PullRequest
0 голосов
/ 06 января 2020

У меня есть приложение, которое генерирует несколько таблиц, чьи идентификаторы отличаются только суффиксами. В то время как я в настоящее время копирую и вставляю большую часть своего кода, чтобы создать все эти панели следующим образом:

  #  Panel 1
  panel1Data <- reactive({panelData(1, input$hsyear1, input$panel1range)})

  output$panel1plot <- renderPlot({panelPlot(panel1Data(), 1)})

  #  Panel 2
  panel2Data <- reactive({panelData(2, input$hsyear2, input$panel2range)})

  output$panel2plot <- renderPlot({panelPlot(panel2Data(), 2)})

Я хочу использовать lapply или любую другую функцию, чтобы сделать это более динамичным c, чтобы я мог сделать мой код немного проще для глаз. Как бы я go об этом?

1 Ответ

1 голос
/ 06 января 2020

Вы не предоставили воспроизводимый пример, поэтому я не могу проверить. Я хотел бы сделать что-то вроде этого:

panelsData <- lapply(1:2, function(i){
  hsyear <- paste0("hsyear", i)
  panelrange <- sprintf("panel%drange", i)
  reactive({
    panelData(i, input[[hsyear]], input[[panelrange]])
  })
})

lapply(1:2, function(i){
  id <- sprintf("panel%dplot", i)
  output[[id]] <- renderPlot({
    panelPlot(panelsData[[i]](), i)
  })
})

Пожалуйста, приведите воспроизводимый пример, если это не работает.

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