Prima ta aplicație shiny
Ai văzut cum pot fi combinate intrările și ieșirile într-o aplicație shiny. Ai văzut, de asemenea, cum poate fi construită o aplicație shiny pentru a comunica rezultatele unui studiu despre somn.
Obiectivul tău acum este să creezi o aplicație shiny care să prezinte două rezultate principale:
- Distribuția orelor de somn
- Mediana orelor de somn pentru diferite grupe de vârstă
În acest exercițiu, datele sunt stocate sub forma unui cadru de date dplyr numit sleep, iar bibliotecile shiny și tidyverse sunt deja încărcate.
Acum e rândul tău să îți creezi propria aplicație shiny!
Acest exercițiu face parte din cursul
Crearea dashboardurilor cu shinydashboard
Instrucțiuni pentru exercițiu
- Adaugă două ieșiri de tip grafic numite "histogram" și "barchart" în
mainPanel. - În argumentul
choiceNamesdincheckboxGroupInput(), înlocuiește conținutul cu pictograme numite "calendar", "briefcase" și "gift". - Definește cele două ieșiri: una numită
histogramși alta numităbarchart. - Folosește funcția
shinyApp()pentru a randa aplicația shiny.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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
___