直接将框动态添加到Shiny Dashboard

时间:2018-11-18 19:19:48

标签: r shiny shinydashboard

我正在尝试根据向量的内容向闪亮的界面中添加多个框。

让我们从这里开始

library(shiny)

ui <- fluidPage(

   titlePanel("Dynamic Boxes"),

   fluidRow(
     uiOutput("boxes")
  )
)

server <- function(input, output) {

  output$boxes <- renderUI({
    interf <- ""
    for(i in 1:10){
      x = 1:100
      interf <- box(title = paste0("box ", i), 
          renderPlot(plot(x = x, y = x^i)))

    }
    interf
  })
}

shinyApp(ui = ui, server = server)

它仅显示最后一个框。我不知道如何将它们组合在一起,然后将其传递给客户端。

1 个答案:

答案 0 :(得分:4)

box来自尚未加载的shinydashboard软件包(至少在您的帖子中)。无论如何,您需要一个列表框,您的for循环不会创建这些框元素。这是一种方法-

library(shiny)
library(shinydashboard)

ui <- fluidPage(      
  titlePanel("Dynamic Boxes"),      
  fluidRow(
    uiOutput("boxes")
  )
)

server <- function(input, output) {      
  output$boxes <- renderUI({
    lapply(1:10, function(a) {
      x = 1:100
      box(title = paste0("box ", a), renderPlot(plot(x = x, y = x^a)))
    })
  })
}

shinyApp(ui = ui, server = server)

enter image description here