Aan de slagGa gratis aan de slag

App 2: Populaire babynamen

Een Shiny-app bouwen is een modulair proces. Je begint met de UI en werkt daarna aan de servercode, waarbij je resultaten opbouwt op basis van de invoer van de gebruiker. Hoe bewuster je deze aanpak oefent, hoe makkelijker het wordt om goede apps te bouwen.

Je gaat nu een Shiny-app bouwen waarin een gebruiker geslacht en jaar kan kiezen, en die de 10 populairste namen in dat jaar weergeeft als een kolomgrafiek van het aandeel geboorten (prop) per naam (name). Je uiteindelijke app zou visueel moeten lijken op de onderstaande schermafbeelding.

An app where the name selector and year slider appear in the left sidebar, while the graph appears on the right in the main panel

We hebben een functie get_top_names() toegevoegd om de 10 populairste namen op te halen voor een gegeven year en sex. Je kunt bijvoorbeeld de 10 populairste jongensnamen voor het jaar 2000 ophalen met get_top_names(2000, "M").

We hebben ook het pakket ggplot2 geladen. Je kunt een kolomgrafiek maken van een data frame d met kolommen x en y met:

ggplot(d, aes(x = x, y = y)) +
  geom_col()

Deze oefening maakt deel uit van de cursus

Webapplicaties bouwen met Shiny in R

Cursus bekijken

Oefeninstructies

  • Voeg een titel toe bovenaan je app en voeg een zijbalklay-out toe.
  • Voeg in de zijbalk een invoer toe waarmee de gebruiker het geslacht kan kiezen (M of F).
  • Voeg in de zijbalk een schuifregelaar toe waarmee de gebruiker een jaar kan kiezen (1880 tot 2017).
  • Voeg een plotoutput toe aan het hoofdpaneel.
  • Voeg op de server een output toe die een kolomgrafiek rendert op basis van year en sex. Let op: je kunt meerdere regels code toevoegen tussen de accolades van een renderfunctie: render***({___}).

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

ui <- fluidPage(
  
)

server <- function(input, output, session) {
  
}

shinyApp(ui = ui, server = server)
Code bewerken en uitvoeren