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.

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
Oefeninstructies
- UI:
- Voeg een input toe in de zijbalk met de naam
cuisinezodat gebruikers een keuken kunnen selecteren uit de volledige set keukens in derecipes-gegevensset. - Voeg een schuifregelaar-input met de naam
nb_ingredientstoe 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.
- Voeg een input toe in de zijbalk met de naam
- Server:
- Filter
recipesop 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.
- Filter
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)