Как использовать lapply или другую функцию более высокого порядка при вызове tabPanel в R блестящий - PullRequest
0 голосов
/ 02 июня 2019

Я использую tabPanel в R блестящий и хотел бы сделать кодер лучше, используя функцию, как lapply

Это вкладка

tabBox(
  title = mytitle, id = myid, width = "8",
  tabPanel(myTitle[1], icon = icon("adjust"), plotOutput(myPlot[1])),
  tabPanel(myTitle[2], icon = icon("adjust"), plotOutput(myPlot[2])),
  tabPanel(myTitle[3], icon = icon("adjust"), plotOutput(myPlot[3])),
  tabPanel(myTitle[4], icon = icon("adjust"), plotOutput(myPlot[4]))
) 

векторы myTitle и myPlot определены как

myTitle=c("A","B","C","D")
myPlot =c("X1","X2","X3","X4")

Как можно избежать повторных определений tabPanel с помощью функции более высокого порядка, например или еще один?

Спасибо за любую помощь

1 Ответ

0 голосов
/ 02 июня 2019
do.call(function(...){
  tabBox(title = mytitle, id = myid, width = "8", ...)
}, mapply(function(title, plotid){
  tabPanel(title, icon = icon("adjust"), plotOutput(plotid))
}, myTitle, myPlot, SIMPLIFY = FALSE, USE.NAMES = FALSE))

Не очень хорошо читается, но это позволяет избежать повторений.

...