Aan de slagGa gratis aan de slag

Verken keukens: belangrijkste ingrediënten

Eten spreekt iedereen aan, en de enorme variatie aan gerechten die je kunt maken met talloze ingrediënten zorgt voor bijna oneindig veel mogelijkheden! In deze oefening gebruik je een gegevensset recipes met recepten, de bijbehorende keuken en de gebruikte ingrediënten om een Shiny-app te bouwen waarmee de gebruiker de meest gebruikte ingrediënten per keuken kan verkennen.

Je uiteindelijke app zou op de afbeelding in deze screenshot moeten lijken.

An app displaying an interactive table of top ingredients by chosen cuisine

We hebben de pakketten shiny en dplyr al geladen, evenals de gegevensset recipes. Daarnaast vind je hieronder een handig codefragment dat de top 10 ingrediënten ophaalt die in de Griekse keuken worden gebruikt. Dit is nuttig om in de app een interactieve datatabel te maken op basis van de keuken en het aantal ingrediënten dat de gebruiker selecteert.

recipes %>% 
  filter(cuisine == 'greek') %>% 
  count(ingredient, name = 'nb_recipes') %>% 
  arrange(desc(nb_recipes)) %>% 
  head(10)

Deze oefening maakt deel uit van de cursus

Webapplicaties bouwen met Shiny in R

Cursus bekijken

Oefeninstructies

  • UI:
    • Voeg een input toe in de zijbalk met de naam cuisine zodat gebruikers een keuken kunnen selecteren uit de volledige set keukens in de recipes-gegevensset.
    • Voeg een schuifregelaar-input met de naam nb_ingredients toe in de zijbalk zodat gebruikers het aantal ingrediënten kunnen selecteren dat wordt weergegeven.
    • Voeg een interactieve datatabel-output toe in het hoofdpaneel met de naam dt_top_ingredients.
  • Server:
    • Filter recipes op basis van de geselecteerde keuken en het aantal te tonen topingrediënten.
    • Render de gefilterde gegevens als een interactieve datatabel.
    • Wijs deze toe aan een output-object met de naam dt_top_ingredients.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

ui <- fluidPage(
  titlePanel('Explore Cuisines'),
  sidebarLayout(
    sidebarPanel(
      # CODE BELOW: Add an input named "cuisine" to select a cuisine

      # CODE BELOW: Add an input named "nb_ingredients" to select # of ingredients

    ),
    mainPanel(
      # CODE BELOW: Add a DT output named "dt_top_ingredients"

    )
  )
)

server <- function(input, output, session) {
  # CODE BELOW: Render the top ingredients in a chosen cuisine as 
  # an interactive data table and assign it to output object `dt_top_ingredients`







}

shinyApp(ui, server)
Code bewerken en uitvoeren