RShiny:显示多个输入和文本

mle*_*gge 3 r rstudio shiny

我想在我的 RShiny 应用程序的选项卡内显示多个输出对象。在教程中,tabPanel(...)命令只接受参数:

tabPanel("Plot", plotOutput("plot"))
Run Code Online (Sandbox Code Playgroud)

然而,在参考文档在这里,它读取“UI元素Ş到标签中包括”领导让我相信,多是可能的,但我无法找到例子。我尝试将对象作为 vectorc(...)和 list传递给它list(...)

这里是server.Rui.R我一直在测试(从闪亮的教程)。

用户界面


    library(shiny)

    # Define UI for random distribution application 
    shinyUI(fluidPage(

      # Application title
      titlePanel("Tabsets"),

      # Sidebar with controls to select the random distribution type
      # and number of observations to generate. Note the use of the
      # br() element to introduce extra vertical spacing
      sidebarLayout(
        sidebarPanel(
          radioButtons("dist", "Distribution type:",
                       c("Normal" = "norm",
                         "Uniform" = "unif",
                         "Log-normal" = "lnorm",
                         "Exponential" = "exp")),
          br(),

          sliderInput("n", 
                      "Number of observations:", 
                      value = 500,
                      min = 1, 
                      max = 1000)
        ),

        # Show a tabset that includes a plot, summary, and table view
        # of the generated distribution
        mainPanel(
          tabsetPanel(type = "tabs", 
                      tabPanel("Plot", plotOutput("plot")), 
                      tabPanel("Summary", verbatimTextOutput("summary")), 
                      tabPanel("Table", tableOutput("table"))
          )
        )
      )
    ))
Run Code Online (Sandbox Code Playgroud)

服务器


    library(shiny)

    # Define server logic for random distribution application
    shinyServer(function(input, output) {

      # Reactive expression to generate the requested distribution.
      # This is called whenever the inputs change. The output
      # functions defined below then all use the value computed from
      # this expression
      data <- reactive({
        dist <- switch(input$dist,
                       norm = rnorm,
                       unif = runif,
                       lnorm = rlnorm,
                       exp = rexp,
                       rnorm)

        dist(input$n)
      })

      # Generate a plot of the data. Also uses the inputs to build
      # the plot label. Note that the dependencies on both the inputs
      # and the data reactive expression are both tracked, and
      # all expressions are called in the sequence implied by the
      # dependency graph
      output$plot <- renderPlot({
        dist <- input$dist
        n <- input$n

        hist(data(), 
             main=paste('r', dist, '(', n, ')', sep=''))
      })

      # Generate a summary of the data
      output$summary <- renderPrint({
        summary(data())
      })

      # Generate an HTML table view of the data
      output$table <- renderTable({
        data.frame(x=data())
      })

    })
Run Code Online (Sandbox Code Playgroud)

top*_*hef 5

以下对我有用:

mainPanel(
    tabsetPanel(
      tabPanel("Some Title",
               h5(textOutput("some text output")),
               htmlOutput("someHTMLElement")
      ),
      tabPanel("Other Title",
               h5(textOutput("some other text output")),
               htmlOutput("otherHTMLElement")
      ),
      tabPanel("Yet Another Title",
               h5(textOutput("yet another text output")),
               htmlOutput("yetAnotherHTMLElement")
      )
    )
Run Code Online (Sandbox Code Playgroud)

功能tabPanel规格是

 tabPanel(title, ..., value = NULL)
Run Code Online (Sandbox Code Playgroud)

这意味着它接受可变数量的“UI 元素包含在选项卡中”的参数