我想在我的 RShiny 应用程序的选项卡内显示多个输出对象。在教程中,tabPanel(...)命令只接受参数:
tabPanel("Plot", plotOutput("plot"))
Run Code Online (Sandbox Code Playgroud)
然而,在参考文档在这里,它读取“UI元素Ş到标签中包括”领导让我相信,多是可能的,但我无法找到例子。我尝试将对象作为 vectorc(...)和 list传递给它list(...)。
这里是server.R和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"))
)
)
)
))
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)
以下对我有用:
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 元素包含在选项卡中”的参数