mirror of
https://github.com/rstudio/shiny.git
synced 2026-01-29 00:38:19 -05:00
83 lines
2.4 KiB
Markdown
83 lines
2.4 KiB
Markdown
|
|
|
|

|
|
|
|
To run the example type:
|
|
|
|
<pre><code class="console">> library(shiny)
|
|
> runExample("07_widgets")
|
|
</code></pre>
|
|
|
|
#### ui.R
|
|
|
|
<pre><code class="r">library(shiny)
|
|
|
|
# Define UI for dataset viewer application
|
|
shinyUI(pageWithSidebar(
|
|
|
|
# Application title.
|
|
headerPanel("More Widgets"),
|
|
|
|
# Sidebar with controls to select a dataset and specify the number
|
|
# of observations to view. The helpText function is also used to
|
|
# include clarifying text. Most notably, the inclusion of a
|
|
# submitButton defers the rendering of output until the user
|
|
# explicitly clicks the button (rather than doing it immediately
|
|
# when inputs change). This is useful if the computations required
|
|
# to render output are inordinately time-consuming.
|
|
sidebarPanel(
|
|
selectInput("dataset", "Choose a dataset:",
|
|
choices = c("rock", "pressure", "cars")),
|
|
|
|
numericInput("obs", "Number of observations to view:", 10),
|
|
|
|
helpText("Note: while the data view will show only the specified",
|
|
"number of observations, the summary will still be based",
|
|
"on the full dataset."),
|
|
|
|
submitButton("Update View")
|
|
),
|
|
|
|
# Show a summary of the dataset and an HTML table with the requested
|
|
# number of observations. Note the use of the h4 function to provide
|
|
# an additional header above each output section.
|
|
mainPanel(
|
|
h4("Summary"),
|
|
verbatimTextOutput("summary"),
|
|
|
|
h4("Observations"),
|
|
tableOutput("view")
|
|
)
|
|
))
|
|
</code></pre>
|
|
|
|
#### server.R
|
|
|
|
<pre><code class="r">library(shiny)
|
|
library(datasets)
|
|
|
|
# Define server logic required to summarize and view the selected dataset
|
|
shinyServer(function(input, output) {
|
|
|
|
# Return the requested dataset
|
|
datasetInput <- reactive(function() {
|
|
switch(input$dataset,
|
|
"rock" = rock,
|
|
"pressure" = pressure,
|
|
"cars" = cars)
|
|
})
|
|
|
|
# Generate a summary of the dataset
|
|
output$summary <- reactivePrint(function() {
|
|
dataset <- datasetInput()
|
|
summary(dataset)
|
|
})
|
|
|
|
# Show the first "n" observations
|
|
output$view <- reactiveTable(function() {
|
|
obs <- as.integer(input$obs)
|
|
head(datasetInput(), n = obs)
|
|
})
|
|
})
|
|
</code></pre>
|