---
title: "Initiation à R Studio"
author: "Layan Fessler et Silvio Maltagliati"
date: "2024-07-04"
output:
  html_document:
    code_download: true # pour pouvoir télécharger le script R depuis le fichier .html
    toc: true # ajouter un sommaire
    toc_float: true # rendre le sommaire flottant
    code_folding: hide # cacher le code 
    editor_options: null
  markdown:
    wrap: sentence
  word_document:
    toc: true
---
# Créer des vecteurs
```{r}
a <- 3+3 # créer un vecteur "a" qui est égale à 3+3
print(a) # afficher le vecteur
```

```{r}
b <- c(1, 5, 10)
c <- c(1:10)
d <- c("rouge", "bleu", "vert")
print(b)
print(c)
print(d)
```

```{r}
c <- as.data.frame(c) # convertir le vecteur en tableau
print(c)
```

# Installer un package et charger sa bibliothèque de packages
```{r}
installed.packages("dplyr") # télécharger un package
installed.packages("readxl") # télécharger un package
installed.packages("psych") # télécharger un package

library(dplyr) # "appeler" le package
library(psych) # "appeler" le package
library(readxl) # "appeler" le package
```

------------------------------------------------------------
Les athlètes français pour les JO 2024 ont noté leurs patisseries préférées de 0 à 10. Ces notes seront utilisées par les nutritionnistes de l'équipe de France pour sélectionner les pâtisseries à réaliser pour la fin des JO, en fonction de la spécialité sportive et du sexe.
------------------------------------------------------------

# Localiser et définir son working directory
```{r}
# working directory
setwd("/Users/layanfessler/Library/CloudStorage/OneDrive-UniversitéGrenobleAlpes/ENCADREMENT/STAGE D'EXCELLENCE/2024/Atelier R") # repporter l'emplacement lié au fichier que l'on veut importer
data <- read_excel("patisseries_JO_2024.xlsx") # Charger son jeu de données
```

# Inspecter son jeu de données
```{r}
# nom des variables
names(data)
```

```{r}
# nombre de lignes et de colonnes 
nrow(data); ncol(data); dim(data)
```

```{r}
# Visualiser les données
View(data)
```

```{r}
# Visualiser les premières colonnes 
head(data)
```

```{r}
# Type de variables
glimpse(data)
```

# Obtenir nos premiers indicateurs sur les variables
```{r}
# Vérifier s'il y a des données manquantes
missing_rows <- apply(is.na(data), 1, any)

# Nombre de données manquantes
sum(missing_rows)

# Localisation des données manquantes
print(data[missing_rows, ])
```

```{r}
# résumé global
summary(data)
```

```{r}
summary(data)
```

```{r}
describe(data) # tout le jeu de données
describe(data$Flan) # Une seule variable
```

```{r}
table(data$Specialite_sportive) # variable non numérique
```

# Obtenir des indicateurs par groupe
```{r}
describeBy(data$Flan, data$Specialite_sportive)
```

```{r}
data %>%
  group_by(Specialite_sportive, Sexe) %>%
  summarise(mean = mean(Flan, na.rm = TRUE), sd = sd(Flan, na.rm = TRUE))
```

------------------------------------------------------------
Les athlètes français pour les JO 2024 ont noté leurs patisseries préférées de 0 à 10. Ces notes seront utilisées par les nutritionnistes de l'équipe de France pour sélectionner les pâtisseries à réaliser pour la fin des JO, en fonction de la spécialité sportive et du sexe.
------------------------------------------------------------

```{r}
# Intégrer toutes les pâtisseries
data %>%
  group_by(Specialite_sportive, Sexe) %>%
  summarise(
    mean_Flan = mean(Flan, na.rm = TRUE),
    sd_Flan = sd(Flan, na.rm = TRUE),
    mean_Tiramisu = mean(Tiramisu, na.rm = TRUE),
    sd_Tiramisu = sd(Tiramisu, na.rm = TRUE),
    mean_Moelleux = mean(Moelleux, na.rm = TRUE),
    sd_Moelleux = sd(Moelleux, na.rm = TRUE)
  )

```

# Trier des données à partir d’une variable "catégorielle"
```{r}
Athletisme <- subset(data, Specialite_sportive == "Athletisme")
print(Athletisme)
```

# Trier des données à partir d’une variable "numérique"
```{r}
scores_hauts_tiramisu <- subset(data, Tiramisu > 5)
print(scores_hauts_tiramisu)
```
# Pour les athlètes de ≤ 24 ans
```{r}
age_inf24 <- subset(data, Age <= 24, )
print(age_inf24)
```

# Ne garder uniquement les données non manquantes
```{r}
age_inf24 <- na.omit(age_inf24)
```


```{r}
age_inf24 %>%
  group_by(Specialite_sportive, Sexe) %>%
  summarise(
    mean_Flan = mean(Flan, na.rm = TRUE),
    sd_Flan = sd(Flan, na.rm = TRUE),
    mean_Tiramisu = mean(Tiramisu, na.rm = TRUE),
    sd_Tiramisu = sd(Tiramisu, na.rm = TRUE),
    mean_Moelleux = mean(Moelleux, na.rm = TRUE),
    sd_Moelleux = sd(Moelleux, na.rm = TRUE)
  )

```

# Pour les athlètes de > 24 ans
```{r}
age_sup24 <- subset(data, Age > 24, )
print(age_sup24)
```
# Ne garder uniquement les données non manquantes
```{r}
age_sup24 <- na.omit(age_sup24)
```

```{r}
age_sup24 %>%
  group_by(Specialite_sportive, Sexe) %>%
  summarise(
    mean_Flan = mean(Flan, na.rm = TRUE),
    sd_Flan = sd(Flan, na.rm = TRUE),
    mean_Tiramisu = mean(Tiramisu, na.rm = TRUE),
    sd_Tiramisu = sd(Tiramisu, na.rm = TRUE),
    mean_Moelleux = mean(Moelleux, na.rm = TRUE),
    sd_Moelleux = sd(Moelleux, na.rm = TRUE)
  )

```

# Visualisation graphique
```{r}
# Charger les packages nécessaires (installer si besoin)
#installed.packages("")
library(ggdist)
library(ggplot2)
library(PupillometryR)
library(reshape2)


# Calculer les statistiques descriptives
summary_stats <- data %>%
  group_by(Specialite_sportive, Sexe) %>%
  summarise(
    mean_Flan = mean(Flan, na.rm = TRUE),
    sd_Flan = sd(Flan, na.rm = TRUE),
    mean_Tiramisu = mean(Tiramisu, na.rm = TRUE),
    sd_Tiramisu = sd(Tiramisu, na.rm = TRUE),
    mean_Moelleux = mean(Moelleux, na.rm = TRUE),
    sd_Moelleux = sd(Moelleux, na.rm = TRUE),
    .groups = "drop"  # Permet de supprimer l'avertissement en spécifiant .groups
  ) %>%
  na.omit()  # Exclure les lignes avec des NA

# Reformater les données pour le graphique (melt pour ggplot2)
summary_stats_melted <- melt(summary_stats, id.vars = c("Specialite_sportive", "Sexe"),
                            measure.vars = c("mean_Flan", "mean_Tiramisu", "mean_Moelleux"),
                            variable.name = "Patisserie", value.name = "Moyenne")

# Ajouter les écarts-types à summary_stats_melted
summary_stats_melted <- summary_stats_melted %>%
  mutate(
    sd = ifelse(Patisserie == "mean_Flan", summary_stats$sd_Flan,
                ifelse(Patisserie == "mean_Tiramisu", summary_stats$sd_Tiramisu,
                       summary_stats$sd_Moelleux))
  )

# Créer le graphique : Barres d'erreur des moyennes avec ggplot2
ggplot(summary_stats_melted, aes(x = Specialite_sportive, y = Moyenne, fill = Sexe)) +
  geom_bar(stat = "identity", position = "dodge") +
  facet_wrap(~ Patisserie, scales = "free_y", nrow = 1) +
  geom_errorbar(aes(ymin = Moyenne - sd, ymax = Moyenne + sd), width = 0.2, position = position_dodge(width = 0.9)) +
  labs(title = "Moyenne et écart-type des notes des pâtisseries par spécialité sportive et sexe",
       x = "Spécialité sportive", y = "Moyenne") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  scale_fill_manual(values = c("Femme" = "#00AFBB", "Homme" = "#E7B800"))  # Couleurs par sexe (F et H)
```

# Graphique de densité
```{r}
library(ggpubr)
ggscatterhist(
  data, x = "Moelleux", y = "Tiramisu",
  color = "Specialite_sportive", size = 3, alpha = 0.6,
  palette = c("#00AFBB", "#E7B800", "#FC4E07"),
  margin.params = list(fill = "Specialite_sportive", color = "black", size = 0.2)
)
```


