Küchen erkunden: Top-Zutaten
Essen begeistert überall – und die beeindruckende Vielfalt an Gerichten, die man
mit unzähligen Zutaten zaubern kann, führt zu beinahe unendlicher Abwechslung! In dieser
Übung arbeitest du mit einem Datensatz namens recipes, der Rezepte, die zugehörige Küche
und die verwendeten Zutaten enthält, um eine Shiny-App zu bauen, mit der Nutzerinnen und Nutzer
die am häufigsten verwendeten Zutaten je Küche erkunden können.
Deine finale App sollte dem Bild im folgenden Screenshot ähneln.

Wir haben die Pakete shiny und dplyr sowie den Datensatz recipes bereits geladen.
Außerdem findest du hier einen praktischen Codeschnipsel, der dir die Top 10 Zutaten
in der griechischen Küche liefert. Das hilft dir, die interaktive Datentabelle in der App
auf Basis der vom Nutzer ausgewählten Küche und Anzahl der Zutaten zu erstellen.
recipes %>%
filter(cuisine == 'greek') %>%
count(ingredient, name = 'nb_recipes') %>%
arrange(desc(nb_recipes)) %>%
head(10)
Diese Übung ist Teil des Kurses
Webanwendungen mit Shiny in R entwickeln
Anleitung zur Übung
- UI:
- Füge in der Sidebar eine Eingabe namens
cuisinehinzu, damit Nutzerinnen und Nutzer eine Küche aus dem vollständigen Satz der im Datensatzrecipesverfügbaren Küchen auswählen können. - Füge in der Sidebar einen Slider-Input namens
nb_ingredientshinzu, damit Nutzerinnen und Nutzer die Anzahl der anzuzeigenden Zutaten festlegen können. - Füge im Hauptbereich eine Ausgabe für eine interaktive Datentabelle namens
dt_top_ingredientshinzu.
- Füge in der Sidebar eine Eingabe namens
- Server:
- Filtere
recipesbasierend auf der ausgewählten Küche und der Anzahl der Top-Zutaten, die angezeigt werden sollen. - Rendere die gefilterten Daten als interaktive Datentabelle.
- Weisen sie einem Output-Objekt namens
dt_top_ingredientszu.
- Filtere
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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)