Introduction aux mégadonnées en sciences sociales
Université de Montréal
Le but est que vous puissiez sortir d’ici avec une compréhension de base de R et que vous soyez capable d’aller chercher des ressources pour continuer à apprendre.
L’analyse de données vise à explorer, décrire et interpréter des informations recueillies sur les comportements humains, les relations sociales et les phénomènes sociétaux. Ce processus peut inclure des données quantitatives (comme des données issus de sondages) et des données qualitatives (comme des entretiens ou des observations).
Principales étapes de l’analyse de données :
Collection de packages pour la manipulation de données
dplyr
: manipulation de données
ggplot2
: graphiques
tidyr
: nettoyage de données
readr
: importation de données
stringr
: manipulation de chaînes de caractères
Chaire de leadership en enseignement des sciences sociales numériques (CLESSN)
getwd()
dans R permet de savoir où vous êtesLes possibilités sont infinies, donc il est important de savoir où vous voulez aller
1_collecte.R
2_nettoyage.R
3_analyse.R
4_graphique.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")
Prenons un exemple simple :
Décomposons cette ligne :
resultat
: nom de l’objet où on stocke le résultat<-
: opérateur d’assignationmean()
: fonction qui calcule la moyennedf$age
: variable ‘age’ du dataframe ‘df’na.rm = TRUE
: argument de la fonction (ignorer les NA)numeric
: nombres (avec ou sans décimales)character
: texte (chaînes de caractères)logical
: TRUE ou FALSEfactor
: catégoriesDate
: datesNA
: valeurs manquantes# Message d'erreur
Error: unexpected symbol in "mon code"
# Cause probable
# Parenthèse ou guillemet manquant
library()
) ?swiss
# Voir le nombre de valeurs pour chaque élément d'une variable
table(df$Fertility)
# Histogramme de la variable 'Fertility'
hist(df$Fertility)
# Obtenir la moyenne de la variable 'Fertility'
mean(df$Fertility)
$
permet d’accéder à une variable dans un dataframe.Fertility
dans le dataframe df
avec df$Fertility
# Sélectionner des colonnes
# (par exemple, Fertility, Education et Agriculture)
df_selected <- df %>%
select(Fertility, Education, Agriculture)
# Filtrer les lignes pour inclure uniquement les cantons
# avec une fertilité supérieure à la moyenne
mean_fertility <- mean(df_selected$Fertility, na.rm = TRUE)
df_filtered <- df_selected %>%
filter(Fertility > mean_fertility)
# Créer une nouvelle variable binaire "high_agriculture"
# indiquant si le pourcentage d'agriculture est supérieur à 50
df_mutated <- df_filtered %>%
mutate(high_agriculture = ifelse(Agriculture > 50, 1, 0))
# Regrouper par "high_agriculture" et calculer la moyenne de l'éducation
df_summarized <- df_mutated %>%
group_by(high_agriculture) %>%
summarize(moyenne_education = mean(Education, na.rm = TRUE))
# Afficher le résultat final
print(df_summarized)
df
est le dataframeaes()
est la fonction qui permet de spécifier les variables à utiliserx
et y
sont les variables à utiliser pour les axes x et ycolor
est la variable à utiliser pour la couleurggplot(df, aes(x = Agriculture, y = Fertility, color = Education)) +
geom_point(alpha = 0.8) # Le alpha est la transparence
geom_()
pour différents types de graphiques
geom_point()
est pour un nuage de pointsgeom_line()
est pour un graphique en lignegeom_bar()
est pour un graphique en barresgeom_histogram()
est pour un histogrammeggplot(df, aes(x = Agriculture, y = Fertility, color = Education)) +
geom_point(alpha = 0.8) + # Le alpha est la transparence
scale_color_gradient(low = "blue", high = "red", name = "Éducation")
scale_color_gradient()
permet de spécifier les couleurs pour la variable Education
low
et high
sont les couleurs pour les valeurs les plus basses et les plus hautesname
est le nom de la légendeggplot(df, aes(x = Agriculture, y = Fertility, color = Education)) +
geom_point(alpha = 0.8) + # Le alpha est la transparence
scale_color_gradient(low = "blue", high = "red", name = "Éducation") +
labs(
title = "Relation entre l'agriculture et la fertilité en Suisse",
x = "Pourcentage d'agriculture",
y = "Fertilité"
)
ggplot(df, aes(x = Agriculture, y = Fertility, color = Education)) +
geom_point(alpha = 0.8) + # Le alpha est la transparence
scale_color_gradient(low = "blue", high = "red", name = "Éducation") +
labs(
title = "Relation entre l'agriculture et la fertilité en Suisse",
x = "Pourcentage d'agriculture",
y = "Fertilité"
) +
theme_minimal()
theme_minimal()
est un thème minimalisteggplot(df, aes(x = Agriculture, y = Fertility, color = Education)) +
geom_point(alpha = 0.8) + # Le alpha est la transparence
scale_color_gradient(low = "blue", high = "red", name = "Éducation") +
labs(
title = "Relation entre l'agriculture et la fertilité en Suisse",
x = "Pourcentage d'agriculture",
y = "Fertilité"
) +
theme_minimal()
ggsave("nom_du_graphique.png", width = 10, height = 6)
# Calculer la corrélation entre Fertility et Agriculture
correlation <- cor(df$Fertility, df$Agriculture)
print(paste("Corrélation entre Fertility et Agriculture:", round(correlation, 2)))
# Effectuer une régression linéaire avec Fertility comme variable dépendante
modele <- lm(Fertility ~ Agriculture, data = df)
# Afficher le résumé du modèle de régression
summary(modele)
_
nettoyage_donnees.R
snake_case
plutôt que camelCase
df_
ou data_
Quoi faire quand ça ne fonctionne pas?
?mean()
dans votre console)