Aquest conjunt de dades s’ha extret del moodle i conté informació detallada sobre diverses opcions d’àpats classificats com a “menjar saludable”. Inclou característiques nutricionals i logístiques (temps de preparació, mètode de cocció) associades a diferents tipus de cuina i dietes.
L’objectiu principal d’aquest projecte és realitzar una anàlisi descriptiva completa del conjunt de dades de menjar saludable. Busquem entendre la composició de les dades, identificar la distribució de les variables clau i visualitzar les relacions bàsiques entre els factors nutricionals i categòrics.
Conté Variables Categòriques Clau: Les columnes cuisine (Tipus de Cuina) i diet_type (Tipus de Dieta) ens permeten separar els aliments en grups.
Conté Variables Numèriques Rellevants: Les columnes calories, protein_g, fat_g i rating són dades quantitatives que ens permeten mesurar i comparar estadísticament les diferències entre els grups.
Mostreu com heu importat el fitxer i quin nom té l’objecte carregat.
{r import} menjar_sa <- read.csv(“healthy_food.csv”) save(list = “menjar_sa”, file = “dades_menjar_sa.RData”)
El conjunt de dades que s’ha utilitzat, amb el nom de fitxer healthy_food.csv, estava originalment en format CSV i no s’ha fet cap tipus de modificació. # 3. Dimensions del dataset
nrow(menjar_sa)
## [1] 2000
ncol(menjar_sa)
## [1] 19
glimpse(menjar_sa)
## Rows: 2,000
## Columns: 19
## $ meal_id <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, …
## $ meal_name <chr> "Kid Pasta", "Husband Rice", "Activity Rice", "Another …
## $ cuisine <chr> "Indian", "Mexican", "Indian", "Mexican", "Thai", "Ital…
## $ meal_type <chr> "Lunch", "Lunch", "Snack", "Snack", "Lunch", "Dinner", …
## $ diet_type <chr> "Keto", "Paleo", "Paleo", "Keto", "Vegan", "Balanced", …
## $ calories <int> 737, 182, 881, 427, 210, 484, 114, 473, 863, 671, 746, …
## $ protein_g <dbl> 52.4, 74.7, 52.9, 17.5, 51.6, 55.3, 60.9, 57.5, 16.8, 4…
## $ carbs_g <dbl> 43.9, 144.4, 97.3, 73.1, 104.3, 130.3, 6.7, 119.0, 43.0…
## $ fat_g <dbl> 34.3, 0.1, 18.8, 7.6, 26.3, 0.1, 6.7, 19.6, 39.4, 38.2,…
## $ fiber_g <dbl> 16.8, 22.3, 20.0, 9.8, 24.8, 29.7, 23.4, 2.0, 24.5, 14.…
## $ sugar_g <dbl> 42.9, 38.6, 37.5, 41.7, 18.2, 1.6, 8.3, 39.8, 33.0, 29.…
## $ sodium_mg <int> 2079, 423, 2383, 846, 1460, 411, 1107, 257, 515, 1110, …
## $ cholesterol_mg <int> 91, 7, 209, 107, 42, 162, 60, 63, 50, 214, 270, 76, 175…
## $ serving_size_g <int> 206, 317, 395, 499, 486, 209, 291, 143, 471, 117, 384, …
## $ cooking_method <chr> "Grilled", "Roasted", "Boiled", "Grilled", "Raw", "Stea…
## $ prep_time_min <int> 47, 51, 58, 14, 47, 56, 41, 18, 33, 35, 57, 8, 11, 45, …
## $ cook_time_min <int> 56, 34, 29, 81, 105, 112, 90, 21, 56, 68, 43, 76, 117, …
## $ rating <dbl> 4.4, 2.4, 4.3, 4.6, 4.3, 1.6, 2.8, 1.6, 4.0, 5.0, 3.1, …
## $ is_healthy <int> 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
Cada fila (o observació) representa un plat o una recepta de menjar saludable amb totes les seves característiques associades
Descriviu cada variable del dataset.
| Variable | Tipus | Descripció | Valors possibles / rang |
|---|---|---|---|
| exemple_var | numèrica | Significat de la variable | 0–100 |
tibble(
Variable = names(menjar_sa),
Tipus_R = sapply(menjar_sa, class)
)
## # A tibble: 19 × 2
## Variable Tipus_R
## <chr> <chr>
## 1 meal_id integer
## 2 meal_name character
## 3 cuisine character
## 4 meal_type character
## 5 diet_type character
## 6 calories integer
## 7 protein_g numeric
## 8 carbs_g numeric
## 9 fat_g numeric
## 10 fiber_g numeric
## 11 sugar_g numeric
## 12 sodium_mg integer
## 13 cholesterol_mg integer
## 14 serving_size_g integer
## 15 cooking_method character
## 16 prep_time_min integer
## 17 cook_time_min integer
## 18 rating numeric
## 19 is_healthy integer
summary(menjar_sa)
## meal_id meal_name cuisine meal_type
## Min. : 1.0 Length:2000 Length:2000 Length:2000
## 1st Qu.: 500.8 Class :character Class :character Class :character
## Median :1000.5 Mode :character Mode :character Mode :character
## Mean :1000.5
## 3rd Qu.:1500.2
## Max. :2000.0
## diet_type calories protein_g carbs_g
## Length:2000 Min. : 100.0 Min. : 5.00 Min. : 0.00
## Class :character 1st Qu.: 372.0 1st Qu.:23.60 1st Qu.: 39.20
## Mode :character Median : 648.0 Median :43.60 Median : 75.95
## Mean : 650.1 Mean :42.86 Mean : 75.92
## 3rd Qu.: 914.5 3rd Qu.:61.90 3rd Qu.:113.03
## Max. :1200.0 Max. :79.90 Max. :150.00
## fat_g fiber_g sugar_g sodium_mg
## Min. : 0.00 Min. : 0.00 Min. : 0.00 Min. : 50.0
## 1st Qu.:14.80 1st Qu.: 7.60 1st Qu.:12.00 1st Qu.: 647.5
## Median :30.30 Median :15.15 Median :24.75 Median :1273.0
## Mean :30.07 Mean :15.25 Mean :24.60 Mean :1257.3
## 3rd Qu.:45.20 3rd Qu.:23.20 3rd Qu.:37.20 3rd Qu.:1854.5
## Max. :60.00 Max. :30.00 Max. :50.00 Max. :2499.0
## cholesterol_mg serving_size_g cooking_method prep_time_min
## Min. : 0.0 Min. :100.0 Length:2000 Min. : 5.00
## 1st Qu.: 72.0 1st Qu.:207.0 Class :character 1st Qu.:19.00
## Median :150.0 Median :302.0 Mode :character Median :34.00
## Mean :150.5 Mean :302.6 Mean :33.35
## 3rd Qu.:228.0 3rd Qu.:402.0 3rd Qu.:48.00
## Max. :300.0 Max. :500.0 Max. :60.00
## cook_time_min rating is_healthy
## Min. : 5.00 Min. :1.000 Min. :0.0000
## 1st Qu.: 33.00 1st Qu.:2.000 1st Qu.:0.0000
## Median : 61.00 Median :3.000 Median :0.0000
## Mean : 61.51 Mean :2.984 Mean :0.0935
## 3rd Qu.: 90.00 3rd Qu.:4.000 3rd Qu.:0.0000
## Max. :120.00 Max. :5.000 Max. :1.0000
no es mostra cap valor perdut. la variable es healthy es SI/NO pero la tractem amb 1 o 0 i la enten com a numerica, s’hauria de transformar No s’observen valors estranys que requereixin eliminació immediata.
Incloeu una o dues gràfiques exploratòries.
library(ggplot2)
grafic_calories <- ggplot(menjar_sa, aes(x = calories)) +
geom_histogram(binwidth = 50, fill = "#99D8C9", color = "black")
labs(title = "Distribució de Calories", x = "Calories (Kcal)", y = "Freqüència") +
theme_minimal()
## NULL
print(grafic_calories)
grafic_rating <- ggplot(menjar_sa, aes(x = rating)) +
geom_histogram(binwidth = 0.5, fill = "#FFD8C9", color = "black")
labs(title = "Distribució de la Valoració (Rating)", x = "Valoració", y = "Freqüència") +
theme_minimal()
## NULL
print(grafic_rating)
No, no necessitem dades externes per completar l’actual anàlisi descriptiva. Si es necessitessin dades externes, es podrien trobar a Plataformes digitals o a Portals d’estadístiques nacionals o autonòmiques.