2014-10-10 80 views
3

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

tabPanel("Plot", plotOutput("plot")) 

然而,在参考文档here,它读取“UI元素小号到标签中包括”导致我相信,多是可能的,但我找不到例子。我曾尝试将对象传递给它作为矢量c(...)和列表list(...)

这里是server.Rui.R我一直在测试(来自Shiny Tutorial)。

ui.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")) 
     ) 
     ) 
    ) 
    )) 

server.R


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()) 
     }) 

    }) 
+2

帮助页面上的用法节建议“UI元素到标签中包括” 'c()'和'list()'都不合适。省略号应该采取任意数量的“解包”参数。 – 2014-10-10 21:12:17

回答

3

以下为我工作:

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") 
    ) 
    ) 

功能tabPanel规范是

tabPanel(title, ..., value = NULL) 

这意味着它接受可变数量的用于参数