Din första shinyApp
Du har sett hur indata och utdata kan kombineras i en shinyApp. Du har också sett hur en shinyApp kan byggas för att presentera resultat från sömnstudien.
Ditt mål nu är att skapa en shinyApp som redovisar två huvudresultat:
- Fördelningen av sovtimmar
- Medianen för sovtimmar bland olika åldersgrupper
I den här övningen har vi lagrat data som en dplyr-dataram kallad sleep, och biblioteken shiny och tidyverse är redan inladdade.
Nu är det din tur att skapa din egen shinyApp!
Den här övningen är en del av kursen
Bygga dashboards med shinydashboard
Övningsinstruktioner
- Lägg till två diagramutdata kallade "histogram" och "barchart" i
mainPanel. - I argumentet
choiceNamesicheckboxGroupInput(), ersätt innehållet med ikoner som heter "calendar", "briefcase" och "gift". - Definiera de två utdatan: en kallad
histogramoch en kalladbarchart. - Använd funktionen
shinyApp()för att rendera shiny-appen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
ui <- fluidPage(
titlePanel("Sleeping habits in America"),
fluidRow(
# Place two plots here, called "histogram" and "barchart"
mainPanel(___("histogram"), ___("barchart")),
inputPanel(sliderInput("binwidth",
label = "Bin width",
min = 0.1, max = 2,
step = 0.01, value=0.25),
checkboxGroupInput("days", "Choose types of days:",
# Replace the list elements with icons called "calendar", "briefcase" and "gift"
choiceNames = list("All days",
"Non-holiday weekdays",
"Weekend days/holidays"),
choiceValues = list("All days",
"Nonholiday weekdays",
"Weekend days and holidays"))),
"In general, across the different age groups, Americans seem to get adequate daily rest." ))
server <- function(input, output, session) {
# Define the histogram and barchart
output$histogram <- ___({
ggplot(sleep, aes(x=`Avg hrs per day sleeping`)) +
geom_histogram(binwidth = input$binwidth, col='white') +
theme_classic()
})
___ <- ___({
filter(sleep, `Type of Days` %in% input$days) %>%
group_by(`Type of Days`, `Age Group`) %>%
summarize(`Median hours` = median(`Avg hrs per day sleeping`)) %>%
ggplot(aes(x = `Median hours`, y = `Age Group`, fill = `Type of Days`)) +
geom_col(position = 'dodge') + theme_classic()
})
}
# Use shinyApp() to render the shinyApp
___