RShiny:显示多个输入和文本
问题描述:
我想在我的RShiny应用程序的选项卡中显示多个输出对象。在本教程中tabPanel(...)
命令只参数:RShiny:显示多个输入和文本
tabPanel("Plot", plotOutput("plot"))
然而,在参考文档here,它读取“UI元素小号到标签中包括”导致我相信,多是可能的,但我找不到例子。我曾尝试将对象传递给它作为矢量c(...)
和列表list(...)
。
这里是server.R
和ui.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())
})
})
答
以下为我工作:
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)
这意味着它接受可变数量的用于参数
帮助页面上的用法节建议“UI元素到标签中包括” 'c()'和'list()'都不合适。省略号应该采取任意数量的“解包”参数。 – 2014-10-10 21:12:17