Inizia subitoInizia gratis

App 2: Nomi di neonati popolari

Creare una Shiny app è un processo modulare. Parti dalla UI, poi lavori sul codice server, costruendo i risultati in base agli input dell’utente. Più ti alleni consapevolmente con questo approccio, più ti sarà facile creare buone app.

Ora costruirai una Shiny app che permette all’utente di scegliere sesso e anno e mostra i 10 nomi più popolari di quell’anno come un grafico a colonne della proporzione di nascite (prop) per nome (name). La tua app finale dovrebbe assomigliare visivamente allo screenshot qui sotto.

Un'app in cui il selettore del nome e lo slider dell'anno compaiono nella barra laterale a sinistra, mentre il grafico appare a destra nel pannello principale

Ti abbiamo fornito una funzione get_top_names() per estrarre i 10 nomi più popolari per un dato year e sex. Per esempio, puoi ottenere i 10 nomi maschili più diffusi per l’anno 2000 usando get_top_names(2000, "M").

Abbiamo anche caricato il pacchetto ggplot2. Puoi creare un grafico a colonne da un data frame d con colonne x e y usando:

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

Questo esercizio fa parte del corso

Creare applicazioni web con Shiny in R

Visualizza corso

Istruzioni dell'esercizio

  • Aggiungi un titolo in cima alla tua app e aggiungi un layout con barra laterale.
  • Aggiungi un input nella barra laterale per permettere all’utente di selezionare il sesso (M o F).
  • Aggiungi uno slider nella barra laterale per permettere all’utente di selezionare un anno (dal 1880 al 2017).
  • Aggiungi un output di tipo grafico nel pannello principale.
  • Aggiungi un output nel server per generare un grafico a colonne basato su year e sex. Nota che puoi aggiungere più righe di codice tra le parentesi graffe di una funzione di rendering: render***({___}).

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

ui <- fluidPage(
  
)

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

shinyApp(ui = ui, server = server)
Modifica ed esegui il codice