Utforska kök: vanligaste ingredienserna
Mat har ett universellt tilltal, och den fantastiska mängd rätter man kan skapa
med alla möjliga ingredienser ger nästan oändlig variation! I den här övningen
använder du en datamängd med namnet recipes som innehåller recept, vilket kök
de tillhör och vilka ingredienser de använder – för att bygga en Shiny-app där
användaren kan utforska de vanligaste ingredienserna per kök.
Din färdiga app bör likna bilden i den här skärmbilden.

Paketen shiny och dplyr samt datamängden recipes är redan inlästa. Här är
ett praktiskt kodavsnitt som hämtar de 10 vanligaste ingredienserna i grekisk mat.
Det är användbart när du skapar den interaktiva datatabellen i appen, baserat på
det kök och det antal ingredienser som användaren väljer.
recipes %>%
filter(cuisine == 'greek') %>%
count(ingredient, name = 'nb_recipes') %>%
arrange(desc(nb_recipes)) %>%
head(10)
Den här övningen är en del av kursen
Bygg webbapplikationer med Shiny i R
Övningsinstruktioner
- UI:
- Lägg till en inmatning i sidopanelen med namnet
cuisineså att användaren kan välja ett kök från alla kök som finns i datamängdenrecipes. - Lägg till en sliderinmatning med namnet
nb_ingredientsi sidopanelen så att användaren kan välja hur många ingredienser som ska visas. - Lägg till en interaktiv datatabell i huvudpanelen med namnet
dt_top_ingredients.
- Lägg till en inmatning i sidopanelen med namnet
- Server:
- Filtrera
recipesbaserat på valt kök och antal toppingredienser som ska visas. - Rendera den filtrerade datan som en interaktiv datatabell.
- Tilldela den till ett utdataobjekt med namnet
dt_top_ingredients.
- Filtrera
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)