2025-08-24

![]()
![]()
![]()
![]()
![]()
![]()
![]()
getwd() dans R permet de savoir où vous êtes
Les possibilités sont infinies, donc il est important de savoir où vous voulez aller
nettoyage_donnees.Rgraphique.R#read.csv() pour lire les fichiersdf dans ce cas-ci, c’est un dataframe<-read.csv()"chemin/vers/data.csv"Voici les deux façons de spécifier le chemin :
/Users/username/Documents/projet/data/data.csv
data/data.csv
/\ (il faut s’assurer de changer les \ pour des /)Autres fonctions pour importer des données dépendamment du format:
df <- readxl::read_excel("chemin/vers/data.xlsx")df <- readRDS("chemin/vers/data.rds")
# Voir les metadonnées de la variable 'cps21_votechoice'
attributes(df$cps21_votechoice)
# Voir le nombre de valeurs pour chaque élément d'une variable
table(df$cps21_votechoice)
# Histogramme de la variable 'cps21_votechoice'
hist(df$cps21_votechoice)$ permet d’accéder à une variable dans un dataframe.cps21_votechoice dans le dataframe df avec df$cps21_votechoice# Sélectionner des colonnes
# (par exemple, cps21_votechoice, Education et Agriculture)
df_selected <- df %>%
select(cps21_votechoice, cps21_education, cps21_yob)
# Filtrer les lignes pour inclure uniquement les gens
# avec une année de naissance supérieure à la moyenne
mean_yob <- mean(df_selected$cps21_yob, na.rm = TRUE)
df_filtered <- df_selected %>%
filter(cps21_yob > mean_yob)# Créer une nouvelle variable binaire "high_education"
attributes(df$cps21_education)
df_mutated <- df_filtered %>%
mutate(high_education = ifelse(cps21_education >= 9, 1, 0))
# Regrouper par "high_education" et calculer la moyenne de l'age
df_summarized <- df_mutated %>%
group_by(high_education) %>%
summarize(moyenne_age = mean(cps21_yob, na.rm = TRUE))
# Afficher le résultat final
print(df_summarized)# Nettoyage minimal pour le graphique
df_graph <- df %>%
select(cps21_votechoice, cps21_education, cps21_yob) %>%
mutate(
age = 2021 - as.numeric(cps21_yob),
age_group = ifelse(is.na(age), NA_character_,
ifelse(age < 30, "18–29",
ifelse(age < 45, "30–44",
ifelse(age < 65, "45–64", "65+")))),
educ_cat = case_when(
cps21_education %in% 1:6 ~ "Secondaire ou moins",
cps21_education %in% 7:8 ~ "Collège/CEGEP",
cps21_education %in% 9:11 ~ "Université+",
TRUE ~ NA_character_
),
votechoice = case_when(
cps21_votechoice == 1 ~ "Libéral",
cps21_votechoice == 2 ~ "Conservateur",
cps21_votechoice == 3 ~ "NPD",
cps21_votechoice == 4 ~ "Bloc Québécois",
cps21_votechoice == 5 ~ "Vert",
cps21_votechoice == 6 ~ "Autre",
TRUE ~ "Indécis"
)
) %>%
mutate(
age_group = factor(age_group, levels = c("18–29","30–44","45–64","65+")),
educ_cat = factor(educ_cat, levels = c("Secondaire ou moins","Collège/CEGEP","Université+")),
votechoice= factor(votechoice,levels = c("Libéral","Conservateur","NPD","Bloc Québécois","Vert","Autre","Indécis"))
)ggplot(df_graph, ...) : on part du dataframe nettoyé.
aes() : on déclare les mappages esthétiques.
x = votechoice → catégories sur l’axe des x.fill = age_group → couleurs par groupe d’âge.geom_bar() crée des barres en comptant les cas par catégorie.position = "dodge" place les barres côte à côte (comparaison directe des effectifs par âge).ggplot(df_graph, aes(x = votechoice, fill = age_group)) +
geom_bar(position = "dodge") +
facet_wrap(~ educ_cat)facet_wrap(~ educ_cat) crée un panneau par niveau de scolarité.ggplot(df_graph, aes(x = votechoice, fill = age_group)) +
geom_bar(position = "dodge") +
facet_wrap(~ educ_cat) +
labs(
title = "Âge et scolarité selon l'intention de vote",
x = "Intention de vote",
y = "Nombre de répondants",
fill = "Âge"
)labs() permet de documenter le graphique.
title : message clair pour le public.x, y : axes explicites.fill : légende compréhensible (groupes d’âge).ggplot(df_graph, aes(x = votechoice, fill = age_group)) +
geom_bar(position = "dodge") +
facet_wrap(~ educ_cat) +
labs(
title = "Âge et scolarité selon l'intention de vote",
x = "Intention de vote",
y = "Nombre de répondants",
fill = "Âge"
) +
theme_minimal()theme_minimal() : esthétique sobre et légèreggplot(df_graph, aes(x = votechoice, fill = age_group)) +
geom_bar(position = "dodge") +
facet_wrap(~ educ_cat) +
labs(
title = "Âge et scolarité selon l'intention de vote",
x = "Intention de vote",
y = "Nombre de répondants",
fill = "Âge"
) +
theme_minimal()
ggsave("vote_age_education_dodge.png", width = 10, height = 6)ggsave() exporte en image (PNG par défaut).width et height
Introduction à R