mirror of
https://github.com/rstudio/shiny.git
synced 2026-01-10 07:28:01 -05:00
85 lines
2.5 KiB
R
85 lines
2.5 KiB
R
% Generated by roxygen2: do not edit by hand
|
|
% Please edit documentation in R/bootstrap.R
|
|
\name{conditionalPanel}
|
|
\alias{conditionalPanel}
|
|
\title{Conditional Panel}
|
|
\usage{
|
|
conditionalPanel(condition, ..., ns = NS(NULL))
|
|
}
|
|
\arguments{
|
|
\item{condition}{A JavaScript expression that will be evaluated repeatedly to
|
|
determine whether the panel should be displayed.}
|
|
|
|
\item{...}{Elements to include in the panel.}
|
|
|
|
\item{ns}{The \code{\link[=NS]{namespace()}} object of the current module, if
|
|
any.}
|
|
}
|
|
\description{
|
|
Creates a panel that is visible or not, depending on the value of a
|
|
JavaScript expression. The JS expression is evaluated once at startup and
|
|
whenever Shiny detects a relevant change in input/output.
|
|
}
|
|
\details{
|
|
In the JS expression, you can refer to \code{input} and \code{output}
|
|
JavaScript objects that contain the current values of input and output. For
|
|
example, if you have an input with an id of \code{foo}, then you can use
|
|
\code{input.foo} to read its value. (Be sure not to modify the input/output
|
|
objects, as this may cause unpredictable behavior.)
|
|
}
|
|
\note{
|
|
You are not recommended to use special JavaScript characters such as a
|
|
period \code{.} in the input id's, but if you do use them anyway, for
|
|
example, \code{inputId = "foo.bar"}, you will have to use
|
|
\code{input["foo.bar"]} instead of \code{input.foo.bar} to read the input
|
|
value.
|
|
}
|
|
\examples{
|
|
## Only run this example in interactive R sessions
|
|
if (interactive()) {
|
|
ui <- fluidPage(
|
|
sidebarPanel(
|
|
selectInput("plotType", "Plot Type",
|
|
c(Scatter = "scatter", Histogram = "hist")
|
|
),
|
|
# Only show this panel if the plot type is a histogram
|
|
conditionalPanel(
|
|
condition = "input.plotType == 'hist'",
|
|
selectInput(
|
|
"breaks", "Breaks",
|
|
c("Sturges", "Scott", "Freedman-Diaconis", "[Custom]" = "custom")
|
|
),
|
|
# Only show this panel if Custom is selected
|
|
conditionalPanel(
|
|
condition = "input.breaks == 'custom'",
|
|
sliderInput("breakCount", "Break Count", min = 1, max = 50, value = 10)
|
|
)
|
|
)
|
|
),
|
|
mainPanel(
|
|
plotOutput("plot")
|
|
)
|
|
)
|
|
|
|
server <- function(input, output) {
|
|
x <- rnorm(100)
|
|
y <- rnorm(100)
|
|
|
|
output$plot <- renderPlot({
|
|
if (input$plotType == "scatter") {
|
|
plot(x, y)
|
|
} else {
|
|
breaks <- input$breaks
|
|
if (breaks == "custom") {
|
|
breaks <- input$breakCount
|
|
}
|
|
|
|
hist(x, breaks = breaks)
|
|
}
|
|
})
|
|
}
|
|
|
|
shinyApp(ui, server)
|
|
}
|
|
}
|