Laurence-Olivier M. Foisy POL-2000 · séance 4 · jeu 24 sept

POL-2000 · Méthodologie quantitative

Préparer ses données avec R


Séance 4 · jeudi 24 septembre 2026

Université Laval Département de science politique
Faculté des sciences sociales
Automne 2026
Où on en est POL-2000 · séance 4 · jeu 24 sept
lecturevous êtes ici13 sept210 sept317 sept424 sept51 oct68 oct715 oct822 oct95 nov1012 nov1119 nov1226 nov133 déc1410 déc1 · Concepts de base2 · Régression3 · Inférence causale
04 jeudi 24 septembre · partie 1 · Concepts de base

Préparer ses données avec R

Lire un codebook, recoder, gérer les valeurs manquantes.

L'examen 1 ouvre aujourd'hui.

en désordreune ligne, une personne
Retour POL-2000 · séance 4 · jeu 24 sept

Des questions sur la semaine dernière ?

Préparer POL-2000 · séance 4 · jeu 24 sept

Notre objectif

abstractionNon structuréesimages · sonsSemi-structuréestextes · journaux · débatsStructuréessondages · données économiqueslignes × colonnesPOL-2000structurer
Des données tidy POL-2000 · séance 4 · jeu 24 sept

Des données tidy

Première page de l’article « Tidy Data » de Hadley Wickham, Journal of Statistical Software, volume 59, numéro 10, août 2014.
« Les jeux de données bien rangés se ressemblent tous. Chaque jeu de données désordonné l’est à sa façon. » Hadley Wickham, « Tidy Data », 2014

POURQUOI Le format tidy, c’est le chemin de moindre résistance pour l’analyse.

Des données tidy POL-2000 · séance 4 · jeu 24 sept

Le vrai travail

CE QU’ON DIT SOUVENT
«
≈ 80 % préparer
20 % analyser
»

Wickham (2014), d’après Dasu et Johnson (2003)

Des données tidy POL-2000 · séance 4 · jeu 24 sept

Du brut au propre

  1. 1Lire le codebook
  2. 2Renommer
  3. 3Traduire les codes
  4. 4-99 devient NA
df_raw20 180 lignes × 1 440 colonnesinchangé df_clean20 180 lignes × 7 colonnesnouveau
cps25_age_in_years age
69
63
45
68
cps25_education ses_education
9 universitaire
8 universitaire
4 secondaire_ou_moins
7 collegial
cps25_lr_scale_bef_1 gauche_droite
8
-99 NA
-99 NA
8

Étude électorale canadienne 2025 · quatre vraies personnes

Des données tidy POL-2000 · séance 4 · jeu 24 sept

Un tableau, vu de près

âgescolaritérevenuintention de vote1699622619633541162428941563831⋮⋮⋮⋮⋮une ligne = une observationici, une personne sondéeune colonne = une variableici, l'âge69une cellule = une valeurici, 69 ansle tableau = l'objet d'étudeles 20 180 personnes

Étude électorale canadienne 2025 · les cinq premières lignes

Des données tidy POL-2000 · séance 4 · jeu 24 sept

Trois règles

1Chaque colonne est une variable.

2Chaque ligne est une observation.

personnesélections

3Chaque tableau est un type d’unité observée.

Wickham (2014), « Tidy Data »

Des données tidy · 1 de 5 POL-2000 · séance 4 · jeu 24 sept

Des valeurs dans les en-têtes

Les tranches de revenu sont des valeurs, pas des variables.

AVANT
religion<$10k$10-20k$20-30k
Agnostic273460
Atheist122737
Buddhist272130
… 11 colonnes

Revenu et religion aux États-Unis, Pew Research Center · tidyr::relig_income

Des données tidy · 1 de 5 POL-2000 · séance 4 · jeu 24 sept

Les tranches de revenu en une colonne

SOLUTION
relig_income |>
  pivot_longer(!religion, names_to = "revenu", values_to = "n")
AVANT
religion<$10k$10-20k$20-30k
Agnostic273460
Atheist122737
Buddhist272130
… 11 colonnes
→
APRÈS · TIDY
religionrevenun
Agnostic<$10k27
Agnostic$10-20k34
Agnostic$20-30k60
Agnostic$30-40k81
Agnostic$40-50k76
… 180 lignes
Des données tidy · 2 de 5 POL-2000 · séance 4 · jeu 24 sept

Plusieurs variables dans une colonne

sp_m_014 cache trois variables : le diagnostic, le sexe, l’âge.

AVANT
countryyearsp_m_014sp_m_1524sp_f_014sp_f_1524
Canada2010330128
… 58 colonnes

Cas de tuberculose, Canada 2010, Organisation mondiale de la santé · tidyr::who2

Des données tidy · 2 de 5 POL-2000 · séance 4 · jeu 24 sept

Trois variables, trois colonnes

SOLUTION
who2 |>
  pivot_longer(!c(country, year),
               names_to = c("diagnostic", "sexe", "age"), names_sep = "_",
               values_to = "cas", values_drop_na = TRUE)
AVANT
countryyearsp_m_014sp_m_1524sp_f_014sp_f_1524
Canada2010330128
… 58 colonnes
→
APRÈS · TIDY
countryyeardiagnosticsexeagecas
Canada2010spm0143
Canada2010spm152430
Canada2010spf0141
Canada2010spf152428
… 76 046 lignes
Des données tidy · 3 de 5 POL-2000 · séance 4 · jeu 24 sept

Des variables dans les lignes et les colonnes

Les jours sont en colonnes, les deux températures en lignes.

AVANT
idmesured1d2d3d4
MX17004tmaxNA27.324.1NA
MX17004tminNA14.414.4NA

Station météo MX17004, Mexique, février 2010 · Global Historical Climatology Network, vignette « Tidy data » de tidyr

Des données tidy · 3 de 5 POL-2000 · séance 4 · jeu 24 sept

Les jours en lignes, les températures en colonnes

SOLUTION
meteo |>
  pivot_longer(d1:d4, names_to = "jour", values_to = "temp", values_drop_na = TRUE) |>
  pivot_wider(names_from = mesure, values_from = temp)
AVANT
idmesured1d2d3d4
MX17004tmaxNA27.324.1NA
MX17004tminNA14.414.4NA
→
APRÈS · TIDY
idjourtmaxtmin
MX17004d227.314.4
MX17004d324.114.4
Des données tidy · 4 de 5 POL-2000 · séance 4 · jeu 24 sept

Plusieurs observations dans une ligne

Une observation : une chanson, une semaine.

AVANT
artisttrackwk1wk2wk3
2 PacBaby Don't Cry878272
2Ge+herThe Hardest Pa918792
… 79 colonnes

Palmarès Billboard, 2000 · tidyr::billboard

Des données tidy · 4 de 5 POL-2000 · séance 4 · jeu 24 sept

Une ligne par chanson et par semaine

SOLUTION
billboard |>
  select(artist, track, starts_with("wk")) |>
  pivot_longer(starts_with("wk"), names_to = "semaine", names_prefix = "wk",
               values_to = "rang", values_drop_na = TRUE)
AVANT
artisttrackwk1wk2wk3
2 PacBaby Don't Cry878272
2Ge+herThe Hardest Pa918792
… 79 colonnes
→
APRÈS · TIDY
artisttracksemainerang
2 PacBaby Don't Cry187
2 PacBaby Don't Cry282
2 PacBaby Don't Cry372
2 PacBaby Don't Cry477
2 PacBaby Don't Cry587
2 PacBaby Don't Cry694
… 5 307 lignes
Des données tidy · 5 de 5 POL-2000 · séance 4 · jeu 24 sept

Une observation dans plusieurs tableaux

Mêmes partis, mêmes colonnes, un fichier par élection.

AVANT
sieges_2021
partisieges
PLC160
PCC119
BQ32
NPD25
PV2
sieges_2025
partisieges
PLC169
PCC144
BQ22
NPD7
PV1

Sièges à la Chambre des communes, élections de 2021 et 2025 · Élections Canada

Des données tidy · 5 de 5 POL-2000 · séance 4 · jeu 24 sept

Un seul tableau, avec l’année

SOLUTION
bind_rows("2021" = sieges_2021, "2025" = sieges_2025, .id = "annee")
AVANT
sieges_2021
partisieges
PLC160
PCC119
BQ32
NPD25
PV2
sieges_2025
partisieges
PLC169
PCC144
BQ22
NPD7
PV1
→
APRÈS · TIDY
anneepartisieges
2021PLC160
2021PCC119
2021BQ32
2021NPD25
2021PV2
2025PLC169
2025PCC144
2025BQ22
2025NPD7
2025PV1
Des données tidy POL-2000 · séance 4 · jeu 24 sept

Les cinq problèmes

1 Des valeurs dans les en-têtes pivot_longer()
2 Plusieurs variables dans une colonne pivot_longer(names_sep = )
3 Des variables dans les lignes et les colonnes pivot_longer() + pivot_wider()
4 Plusieurs observations dans une ligne pivot_longer()
5 Une observation dans plusieurs tableaux bind_rows()

Wickham (2014), « Tidy Data »

Le codebook POL-2000 · séance 4 · jeu 24 sept

Le codebook


Le dictionnaire des données.

Le codebook POL-2000 · séance 4 · jeu 24 sept

Le codebook de 1993

ces1993-codebook.pdf p. 1 / 153
Codebook 1993, page 1Codebook 1993, page 2Codebook 1993, page 3Codebook 1993, page 4Codebook 1993, page 5Codebook 1993, page 6Codebook 1993, page 7Codebook 1993, page 8Codebook 1993, page 9Codebook 1993, page 10Codebook 1993, page 11Codebook 1993, page 12Codebook 1993, page 13Codebook 1993, page 14Codebook 1993, page 15Codebook 1993, page 16Codebook 1993, page 17Codebook 1993, page 18Codebook 1993, page 19Codebook 1993, page 20Codebook 1993, page 21Codebook 1993, page 22Codebook 1993, page 23Codebook 1993, page 24Codebook 1993, page 25Codebook 1993, page 26Codebook 1993, page 27Codebook 1993, page 28Codebook 1993, page 29Codebook 1993, page 30Codebook 1993, page 31Codebook 1993, page 32Codebook 1993, page 33Codebook 1993, page 34Codebook 1993, page 35Codebook 1993, page 36Codebook 1993, page 37 : l'entrée cpsg1 sur la TPSCodebook 1993, page 38Codebook 1993, page 39Codebook 1993, page 40

pages 41 à 153 : le PDF complet

Étude électorale canadienne 1993 · cpsg1 (la TPS) : p. 37 · le PDF complet

Le codebook POL-2000 · séance 4 · jeu 24 sept

Des codes illisibles

CPSIGENCPSA3CPSG1CPSO11CPSA2
51711
52511
599711
12711
51311
12511

Que veut dire 7 ?

Étude électorale canadienne 1993 · données brutes et codebook

Le codebook POL-2000 · séance 4 · jeu 24 sept

Lire une entrée

Entrée cpsg1 du codebook de l'Étude électorale canadienne de 1993 : la question sur la TPS, les codes 1 très favorable, 3 plutôt favorable, 5 plutôt opposé, 7 très opposé, 8 ne sait pas, 9 refus.
Étude électorale canadienne 1993 · codebook, p. 37
UNE ENTRÉE DU CODEBOOK

Quatre choses à trouver, chaque fois.

En direct · le codebook POL-2000 · séance 4 · jeu 24 sept

Le codebook, dans R

> attr(df_raw$cps25_demsat, "label")
[1] "On the whole, how satisfied are you with\nthe way democracy works in Canada?"
> table(df_raw$cps25_demsat)
    1     2     3     4     5 
 2971 10576  4313  1594   726 
> ▍
Pause POL-2000 · séance 4 · jeu 24 sept

Pause


Quinze minutes.

Recoder POL-2000 · séance 4 · jeu 24 sept

Recoder


Des codes du sondage aux catégories de votre question.

Recoder POL-2000 · séance 4 · jeu 24 sept

df_raw et df_clean

df_raw lecture seulement
df_clean
idnumrefprov…cpsg1…cpso3…rlink
⋮⋮⋮⋮⋮⋮⋮⋮
case_when()
idses_education…
1
2
3
4
⋮⋮
4871

4 871 lignes × 872 colonnes

4 871 lignes × 1 colonne

df_clean <- data.frame(id = 1:nrow(df_raw))
df_clean$ses_education <- case_when(
  df_raw$cpso3 <= 5  ~ "secondaire_ou_moins",
  df_raw$cpso3 <= 7  ~ "collegial",
  df_raw$cpso3 <= 11 ~ "universitaire"
)
Recoder POL-2000 · séance 4 · jeu 24 sept

Poser une question à R

  1. 1 Aucune scolarité
  2. 2 Primaire commencé
  3. 3 Primaire terminé
  4. 4 Secondaire commencé
  5. 5 Secondaire terminé
  6. 6 Collégial commencé
  7. 7 Collégial terminé
  8. 8 Université commencée
  9. 9 Baccalauréat
  10. 10 Maîtrise
  11. 11 Professionnel, doctorat
educ <- 1:11

df_raw$cpso3 · Étude électorale canadienne 1993

TRUEoui FALSEnon
Recoder POL-2000 · séance 4 · jeu 24 sept

Si…, alors…

df_clean$ses_education <- case_when(
  df_raw$cpso3 <= 5  ~ "secondaire_ou_moins",
  df_raw$cpso3 <= 7  ~ "collegial",
  df_raw$cpso3 <= 11 ~ "universitaire"
)
UNE RÈGLE PAR LIGNE

Trois catégories, trois règles.

Recoder POL-2000 · séance 4 · jeu 24 sept

Quatre façons, un résultat

R de base (crochets) ✓
df_clean$universitaire <- NA
df_clean$universitaire[df_raw$cpso3 >= 8] <- 1
df_clean$universitaire[df_raw$cpso3 < 8] <- 0
ifelse() ✓
df_clean$universitaire <-
  ifelse(df_raw$cpso3 >= 8, 1, 0)
if_else() (dplyr) ✓
df_clean$universitaire <-
  if_else(df_raw$cpso3 >= 8, 1, 0)
case_when() (dplyr) ✓
df_clean$universitaire <- case_when(
  df_raw$cpso3 >= 8 ~ 1,
  df_raw$cpso3 < 8  ~ 0
)
✓ ✓ ✓ ✓
> table(df_clean$universitaire, useNA = "ifany")
   0    1 <NA> 
1715  619 2537 

Dans ce cours : le tidyverse, case_when().

Recoder POL-2000 · séance 4 · jeu 24 sept

Opérationnaliser

df_raw$cpso311 codesAucune scolarité11Primaire commencé257Primaire terminé367Secondaire commencé4466Secondaire terminé5648Collégial commencé6182Collégial terminé7294Université commencée8191Baccalauréat9303Maîtrise1070Professionnel, doctorat115501 7151619secondaire_ou_moins1 239collegial476universitaire619No schooling1Some elementary57Complete elementary67Some sec,high school466Complete sec,hs648Some tech,cc,etc182Complete tech,cc,etc294Some university191Bachelors303Masters70Profesnl,ph.D.55
En direct · recoder POL-2000 · séance 4 · jeu 24 sept

Trois catégories, dans R

> table(df_raw$cpso3)
  1   2   3   4   5   6   7   8   9  10  11 
  1  57  67 466 648 182 294 191 303  70  55 
> df_clean$ses_education <- case_when(
  df_raw$cpso3 <= 5  ~ "secondaire_ou_moins",
  df_raw$cpso3 <= 7  ~ "collegial",
  df_raw$cpso3 <= 11 ~ "universitaire"
)
> table(df_clean$ses_education, useNA = "ifany")
          collegial secondaire_ou_moins       universitaire                <NA> 
                476                1239                 619                2537 
> ▍
Recoder POL-2000 · séance 4 · jeu 24 sept

Toujours vérifier

df_raw$cpso3df_clean$ses_educationAucune scolarité11Primaire commencé257Primaire terminé367Secondaire commencé4466Secondaire terminé5648Collégial commencé6182Collégial terminé7294Université commencée8191Baccalauréat9303Maîtrise1070Professionnel, doctorat1155NA2 537secondaire_ou_moinscollegialuniversitaireNA
Recoder POL-2000 · séance 4 · jeu 24 sept

Toutes les variables de 0 à 1

01minimummaximum0,5satisfactionLikert, 1 à 51 pas du tout · 2 peu · 3 moyennement · 4 assez · 5 très1020,2530,540,7551gauche-droite0 à 100gauche010,120,230,340,450,560,670,780,890,910droite1né.e au Canadaoui ou nonoui0non1

Trois variables, trois étendues différentes.

Recoder POL-2000 · séance 4 · jeu 24 sept

1 = ce que dit le nom

df_raw$cps25_demsat1Très satisfait2Plutôt satisfait3Peu satisfait4Pas du tout satisfait5Ne sait pasdf_clean$satisfaction1= satisfait.e0,670,330= pas satisfait.eNA

Dans le sondage, plus le code monte, moins on est satisfait.

Recoder POL-2000 · séance 4 · jeu 24 sept

Comment case_when() lit vos données

df_rawcps25_demsat
1 4
2 2
3 2
4 2
5 5
6 3
⋮
df_clean$satisfaction <- case_when(
df_raw$cps25_demsat == 1 ~ 1,
df_raw$cps25_demsat == 2 ~ 0.67,
df_raw$cps25_demsat == 3 ~ 0.33,
df_raw$cps25_demsat == 4 ~ 0
)
df_cleansatisfaction
1
2
3
4
5
6
⋮
En direct · recoder POL-2000 · séance 4 · jeu 24 sept

De 0 à 1, dans R

> table(df_raw$cps25_demsat)
    1     2     3     4     5 
 2971 10576  4313  1594   726 
> df_clean$satisfaction <- case_when(
  df_raw$cps25_demsat == 1 ~ 1,
  df_raw$cps25_demsat == 2 ~ 0.67,
  df_raw$cps25_demsat == 3 ~ 0.33,
  df_raw$cps25_demsat == 4 ~ 0
)
> table(df_clean$satisfaction, useNA = "ifany")
    0  0.33  0.67     1  <NA> 
 1594  4313 10576  2971   726 
> ▍
Les valeurs manquantes POL-2000 · séance 4 · jeu 24 sept

Les valeurs manquantes


-99, « ne sait pas », NA et NaN.

Les valeurs manquantes POL-2000 · séance 4 · jeu 24 sept

Quatre sortes de vide

−99 3 184 personnes

R le lit comme un nombre

Ne sait pas
PLC PCC NPD
Ne sait pas
catégorieNA
1 887 personnes

Une vraie réponse

NA 4 271 personnes

Question jamais posée

NaN 0 / 0→NaN dans R

Un calcul sans réponse

Étude électorale canadienne 2025 · 20 180 personnes

Les valeurs manquantes POL-2000 · séance 4 · jeu 24 sept

La moyenne, pas à pas

> ▍
 
  1. 1
  2. 2
  3. 3
  4. 4
01 0002 0003 0004 000//3 184−990123456789100 = gauche · 10 = droite

Étude électorale canadienne 2025 · cps25_lr_scale_bef_1

Les valeurs manquantes POL-2000 · séance 4 · jeu 24 sept

Chaque variable coûte des lignes

age
20 180
+ ses_education
20 127
+ gauche_droite
16 962
+ satisfaction
16 667
+ ne_canada
16 604
+ vote
−6 776
13 404

drop_na() garde 13 404 personnes sur 20 180 · 6 776 retirées (34 %)

  1. Retirer les NA seulement sur les variables de votre analyse
    drop_na(df_clean, age, ses_education, gauche_droite) garde 16 962
  2. Les personnes retirées ne sont pas tirées au hasard : elles peuvent être différentes de celles qui restent
Une base propre POL-2000 · séance 4 · jeu 24 sept

Une base propre


Une base propre POL-2000 · séance 4 · jeu 24 sept

Six personnes, avant et après

df_raw
cps25_age_in_yearscps25_educationcps25_lr_scale_bef_1cps25_demsatcps25_bornin_canadacps25_votechoice
6998422
6193213
54117212
638-99211
454-9951NA
687832NA
df_clean
ageses_educationgauche_droitesatisfactionne_canadavote
69universitaire8002. Conservative Party
61universitaire30.6713. NDP
54universitaire70.6712. Conservative Party
63universitaireNA0.6711. Liberal Party
45secondaire_ou_moinsNANA1NA
68collegial80.330NA

Six vraies personnes de l’Étude électorale canadienne 2025

En direct · une base propre POL-2000 · séance 4 · jeu 24 sept

Garder, nommer, sauvegarder

> df_clean$age <- as.numeric(df_raw$cps25_age_in_years)
df_clean$vote <- as_factor(df_raw$cps25_votechoice)
> head(df_clean)
  id ses_education satisfaction ne_canada gauche_droite age                  vote
1  1 universitaire         0.00         0             8  69 2. Conservative Party
2  2 universitaire         0.67         1             3  61                3. NDP
3  3 universitaire         0.67         1             7  54 2. Conservative Party
4  4 universitaire         1.00         0             7  28      1. Liberal Party
5  5 universitaire         0.67         1            NA  63      1. Liberal Party
6  6 universitaire         0.33         1             5  28 2. Conservative Party
> saveRDS(df_clean, "ces2025_clean.rds")
> ▍
En direct · le script POL-2000 · séance 4 · jeu 24 sept

Le script entier, 1 de 7

seance4.R · à refaire chez vous
# POL-2000 · séance 4 · Préparer ses données avec R
# À refaire chez vous, ligne par ligne, Ctrl + Entrée.
# La règle : df_raw ne change jamais. On remplit df_clean, une colonne à la fois.

library(ces)
library(dplyr)
library(tidyr)
library(haven)

# 1. L'Étude électorale de 1993
df_raw <- get_ces("1993")
df_clean <- data.frame(id = 1:nrow(df_raw))
En direct · le script POL-2000 · séance 4 · jeu 24 sept

Le script entier, 2 de 7

seance4.R · la suite
# 2. Opérationnaliser la scolarité : trois choix
table(df_raw$cpso3)
df_clean$ses_universitaire <- case_when(
  df_raw$cpso3 >= 8 ~ 1,
  df_raw$cpso3 < 8  ~ 0
)
df_clean$ses_education <- case_when(
  df_raw$cpso3 <= 5  ~ "secondaire_ou_moins",
  df_raw$cpso3 <= 7  ~ "collegial",
  df_raw$cpso3 <= 11 ~ "universitaire"
)
df_clean$ses_education_detail <- as_factor(df_raw$cpso3)
table(df_clean$ses_education, useNA = "ifany")   # toujours vérifier
En direct · le script POL-2000 · séance 4 · jeu 24 sept

Le script entier, 3 de 7

seance4.R · la suite
# 3. Votre travail : l'Étude électorale de 2025
df_raw <- readRDS("ces2025.rds")   # sauvegardé à la séance 2, sinon get_ces("2025")
df_clean <- data.frame(id = 1:nrow(df_raw))

attr(df_raw$cps25_demsat, "label")
table(df_raw$cps25_demsat)
En direct · le script POL-2000 · séance 4 · jeu 24 sept

Le script entier, 4 de 7

seance4.R · la suite
# 4. De 0 à 1, dans le sens du nom
df_clean$satisfaction <- case_when(
  df_raw$cps25_demsat == 1 ~ 1,
  df_raw$cps25_demsat == 2 ~ 0.67,
  df_raw$cps25_demsat == 3 ~ 0.33,
  df_raw$cps25_demsat == 4 ~ 0
)
table(df_clean$satisfaction, useNA = "ifany")
En direct · le script POL-2000 · séance 4 · jeu 24 sept

Le script entier, 5 de 7

seance4.R · la suite
# 5. La scolarité et le lieu de naissance
table(df_raw$cps25_education)
df_clean$ses_education <- case_when(
  df_raw$cps25_education <= 5  ~ "secondaire_ou_moins",
  df_raw$cps25_education <= 7  ~ "collegial",
  df_raw$cps25_education <= 11 ~ "universitaire"
)
table(df_clean$ses_education, useNA = "ifany")

table(df_raw$cps25_bornin_canada)
df_clean$ne_canada <- case_when(
  df_raw$cps25_bornin_canada == 1 ~ 1,
  df_raw$cps25_bornin_canada == 2 ~ 0
)
table(df_clean$ne_canada, useNA = "ifany")
En direct · le script POL-2000 · séance 4 · jeu 24 sept

Le script entier, 6 de 7

seance4.R · la suite
# 6. Les valeurs manquantes
mean(df_raw$cps25_lr_scale_bef_1)
df_clean$gauche_droite <- na_if(df_raw$cps25_lr_scale_bef_1, -99)
mean(df_clean$gauche_droite)
mean(df_clean$gauche_droite, na.rm = TRUE)

# 7. Compléter et sauvegarder df_clean
df_clean$age <- as.numeric(df_raw$cps25_age_in_years)
df_clean$vote <- as_factor(df_raw$cps25_votechoice)
head(df_clean)
saveRDS(df_clean, "ces2025_clean.rds")
En direct · le script POL-2000 · séance 4 · jeu 24 sept

Le script entier, 7 de 7

seance4.R · la fin
# 8. Des données tidy
relig_income |>
  pivot_longer(!religion, names_to = "revenu", values_to = "n")

# 9. À vous : cps25_interest_gen_1 a aussi des -99. Mettez-la dans df_clean, puis sa moyenne.
Examen 1 POL-2000 · séance 4 · jeu 24 sept

L’examen 1 ouvre aujourd’hui


Examen 1 POL-2000 · séance 4 · jeu 24 sept

Examen 1

15 % Individuel À la maison, sur ordinateur
OUVRE jeudi 24 septembre
→
À REMETTRE dimanche 4 octobre 23h59
Avant jeudi prochain POL-2000 · séance 4 · jeu 24 sept

Avant jeudi prochain


Avant jeudi prochain POL-2000 · séance 4 · jeu 24 sept

Deux choses

Datacamp Datacamp Intermediate R · Conditionals and Control Flow
15 % Examen 1 ouvert depuis jeudi 24 septembre à remettre dimanche 4 octobre, 23h59
Avant jeudi prochain POL-2000 · séance 4 · jeu 24 sept

Jeudi prochain


L’inférence statistique.

Laurence-Olivier M. Foisy POL-2000 · séance 4 · jeu 24 sept

Merci.


Université Laval Département de science politique
Faculté des sciences sociales
POL-2000 · Automne 2026
1 / 58