Odkrywaj kuchnie: najpopularniejsze składniki
Jedzenie łączy ludzi na całym świecie, a ogromna różnorodność składników pozwala tworzyć niemal nieskończoną liczbę dań! W tym ćwiczeniu skorzystasz ze zbioru danych recipes, który zawiera przepisy, przypisane do nich kuchnie oraz używane składniki. Twoim zadaniem jest zbudowanie aplikacji Shiny, która pozwoli użytkownikowi eksplorować najpopularniejsze składniki w poszczególnych kuchniach.
Twoja gotowa aplikacja powinna wyglądać jak na poniższym zrzucie ekranu.

Pakiety shiny i dplyr oraz zbiór danych recipes są już wczytane. Poniżej znajdziesz przydatny fragment kodu, który zwraca 10 najczęściej używanych składników w kuchni greckiej. Pomoże ci on zbudować interaktywną tabelę danych w aplikacji, bazującą na wybranej przez użytkownika kuchni i liczbie składników.
recipes %>%
filter(cuisine == 'greek') %>%
count(ingredient, name = 'nb_recipes') %>%
arrange(desc(nb_recipes)) %>%
head(10)
To ćwiczenie jest częścią kursu
Tworzenie aplikacji internetowych z Shiny w R
Instrukcje do ćwiczenia
- UI:
- Dodaj w panelu bocznym pole wejściowe o nazwie
cuisine, które pozwoli użytkownikom wybrać kuchnię spośród wszystkich dostępnych w zbiorze danychrecipes. - Dodaj w panelu bocznym suwak o nazwie
nb_ingredients, który pozwoli użytkownikom określić liczbę składników do wyświetlenia. - Dodaj w panelu głównym wyjście interaktywnej tabeli danych o nazwie
dt_top_ingredients.
- Dodaj w panelu bocznym pole wejściowe o nazwie
- Server:
- Przefiltruj
recipeswedług wybranej kuchni i liczby najpopularniejszych składników do wyświetlenia. - Wyrenderuj przefiltrowane dane jako interaktywną tabelę danych.
- Przypisz wynik do obiektu wyjściowego o nazwie
dt_top_ingredients.
- Przefiltruj
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)