Créer la courbe montrant l’évolution du nombre annuel de demandeurs d’emploi inscrits à Pôle emploi (Catégorie ABC - France métropolitaine) de 1996 à 2018.
Data set : Chômage et demandeurs d’emploi
Lien : http://statistiques.pole-emploi.org/stmt/publication
Gérer les colonnes
# que se passe-t-il quand un fichier de données comporte plusieurs lignes pour les noms de colonnes?
data <- read.csv2(file.choose(), stringsAsFactors = FALSE)
head(data) # la deuxième ligne pour les noms de colonnes est considérée comme la première ligne de données## Période Hommes..DEFM.ABC. X X.1 X.2
## 1 Moins de 25 ans 25 à 49 ans 50 ans ou plus Ensemble
## 2 1996T1 367 700 1 157 700 217 000 1 742 300
## 3 1996T2 369 900 1 171 100 222 000 1 762 900
## 4 1996T3 375 600 1 191 400 227 300 1 794 400
## 5 1996T4 380 300 1 210 400 233 000 1 823 600
## 6 1997T1 381 800 1 229 700 239 100 1 850 500
## Femmes..DEFM.ABC. X.3 X.4 X.5 Total..DEFM.ABC.
## 1 Moins de 25 ans 25 à 49 ans 50 ans ou plus Ensemble Moins de 25 ans
## 2 436 500 1 385 700 194 900 2 017 100 804 200
## 3 437 600 1 397 100 200 100 2 034 800 807 400
## 4 441 900 1 411 200 205 700 2 058 700 817 500
## 5 439 300 1 418 800 210 900 2 069 100 819 600
## 6 439 700 1 436 200 216 800 2 092 700 821 500
## X.6 X.7 X.8
## 1 25 à 49 ans 50 ans ou plus Ensemble
## 2 2 543 400 411 900 3 759 500
## 3 2 568 200 422 100 3 797 700
## 4 2 602 600 433 000 3 853 100
## 5 2 629 200 443 900 3 892 700
## 6 2 665 900 455 900 3 943 200
## Période Hommes..DEFM.ABC. X X.1 X.2 Femmes..DEFM.ABC.
## 2 1996T1 367 700 1 157 700 217 000 1 742 300 436 500
## 3 1996T2 369 900 1 171 100 222 000 1 762 900 437 600
## 4 1996T3 375 600 1 191 400 227 300 1 794 400 441 900
## 5 1996T4 380 300 1 210 400 233 000 1 823 600 439 300
## 6 1997T1 381 800 1 229 700 239 100 1 850 500 439 700
## 7 1997T2 376 400 1 244 000 246 200 1 866 600 435 300
## X.3 X.4 X.5 Total..DEFM.ABC. X.6 X.7 X.8
## 2 1 385 700 194 900 2 017 100 804 200 2 543 400 411 900 3 759 500
## 3 1 397 100 200 100 2 034 800 807 400 2 568 200 422 100 3 797 700
## 4 1 411 200 205 700 2 058 700 817 500 2 602 600 433 000 3 853 100
## 5 1 418 800 210 900 2 069 100 819 600 2 629 200 443 900 3 892 700
## 6 1 436 200 216 800 2 092 700 821 500 2 665 900 455 900 3 943 200
## 7 1 457 700 224 100 2 117 200 811 700 2 701 800 470 300 3 983 800
# on renomme les variables
names(data) <- c("Période", "Moins de 25 ans_H", "25 à 49 ans_H", "50 ans ou plus_H", "Ensemble_H", "Moins de 25 ans_F", "25 à 49 ans_F", "50 ans ou plus_F", "Ensemble_F","Moins de 25 ans_T", "25 à 49 ans_T", "50 ans ou plus_T", "Ensemble_T")
colnames(data)## [1] "Période" "Moins de 25 ans_H" "25 à 49 ans_H"
## [4] "50 ans ou plus_H" "Ensemble_H" "Moins de 25 ans_F"
## [7] "25 à 49 ans_F" "50 ans ou plus_F" "Ensemble_F"
## [10] "Moins de 25 ans_T" "25 à 49 ans_T" "50 ans ou plus_T"
## [13] "Ensemble_T"
# Attention: les noms de colonnes ne doivent pas comporter d'espaces
colnames(data) <- gsub(" ", "_", colnames(data))
head(data) # check## Période Moins_de_25_ans_H 25_à_49_ans_H 50_ans_ou_plus_H Ensemble_H
## 2 1996T1 367 700 1 157 700 217 000 1 742 300
## 3 1996T2 369 900 1 171 100 222 000 1 762 900
## 4 1996T3 375 600 1 191 400 227 300 1 794 400
## 5 1996T4 380 300 1 210 400 233 000 1 823 600
## 6 1997T1 381 800 1 229 700 239 100 1 850 500
## 7 1997T2 376 400 1 244 000 246 200 1 866 600
## Moins_de_25_ans_F 25_à_49_ans_F 50_ans_ou_plus_F Ensemble_F Moins_de_25_ans_T
## 2 436 500 1 385 700 194 900 2 017 100 804 200
## 3 437 600 1 397 100 200 100 2 034 800 807 400
## 4 441 900 1 411 200 205 700 2 058 700 817 500
## 5 439 300 1 418 800 210 900 2 069 100 819 600
## 6 439 700 1 436 200 216 800 2 092 700 821 500
## 7 435 300 1 457 700 224 100 2 117 200 811 700
## 25_à_49_ans_T 50_ans_ou_plus_T Ensemble_T
## 2 2 543 400 411 900 3 759 500
## 3 2 568 200 422 100 3 797 700
## 4 2 602 600 433 000 3 853 100
## 5 2 629 200 443 900 3 892 700
## 6 2 665 900 455 900 3 943 200
## 7 2 701 800 470 300 3 983 800
On met les vecteurs au format numeric
## [1] "character"
# la première variable 'Période' demandera un travail spécifique, on commence par les autres
for (i in 2:ncol(data)) {
data[,i] <- gsub(" ", "", data[,i])
data[,i] <- as.numeric(data[,i])
}
head(data) # check## Période Moins_de_25_ans_H 25_à_49_ans_H 50_ans_ou_plus_H Ensemble_H
## 2 1996T1 367700 1157700 217000 1742300
## 3 1996T2 369900 1171100 222000 1762900
## 4 1996T3 375600 1191400 227300 1794400
## 5 1996T4 380300 1210400 233000 1823600
## 6 1997T1 381800 1229700 239100 1850500
## 7 1997T2 376400 1244000 246200 1866600
## Moins_de_25_ans_F 25_à_49_ans_F 50_ans_ou_plus_F Ensemble_F Moins_de_25_ans_T
## 2 436500 1385700 194900 2017100 804200
## 3 437600 1397100 200100 2034800 807400
## 4 441900 1411200 205700 2058700 817500
## 5 439300 1418800 210900 2069100 819600
## 6 439700 1436200 216800 2092700 821500
## 7 435300 1457700 224100 2117200 811700
## 25_à_49_ans_T 50_ans_ou_plus_T Ensemble_T
## 2 2543400 411900 3759500
## 3 2568200 422100 3797700
## 4 2602600 433000 3853100
## 5 2629200 443900 3892700
## 6 2665900 455900 3943200
## 7 2701800 470300 3983800
# variable 'Période' : il faut séparer l'année et le trimestre. On crée une nouvelle variable 'Période2' qui ne comportera que l'année
for (i in 1:nrow(data)) {
data$Période2[i] <- strsplit(data$Période[i], "T")
}
# dans le stringsplit, on ne garde que l'année
for (i in 1:nrow(data)) {
data$Période2[i] <- (strsplit(data$Période, "T")[[i]])[1]
}
head(data) # check## Période Moins_de_25_ans_H 25_à_49_ans_H 50_ans_ou_plus_H Ensemble_H
## 2 1996T1 367700 1157700 217000 1742300
## 3 1996T2 369900 1171100 222000 1762900
## 4 1996T3 375600 1191400 227300 1794400
## 5 1996T4 380300 1210400 233000 1823600
## 6 1997T1 381800 1229700 239100 1850500
## 7 1997T2 376400 1244000 246200 1866600
## Moins_de_25_ans_F 25_à_49_ans_F 50_ans_ou_plus_F Ensemble_F Moins_de_25_ans_T
## 2 436500 1385700 194900 2017100 804200
## 3 437600 1397100 200100 2034800 807400
## 4 441900 1411200 205700 2058700 817500
## 5 439300 1418800 210900 2069100 819600
## 6 439700 1436200 216800 2092700 821500
## 7 435300 1457700 224100 2117200 811700
## 25_à_49_ans_T 50_ans_ou_plus_T Ensemble_T Période2
## 2 2543400 411900 3759500 1996
## 3 2568200 422100 3797700 1996
## 4 2602600 433000 3853100 1996
## 5 2629200 443900 3892700 1996
## 6 2665900 455900 3943200 1997
## 7 2701800 470300 3983800 1997
On calcule le nombre de demandeurs d’emploi moyen pour chaque année
## [1] "list"
data$Période2 <- as.numeric(data$Période2)
# on crée une variable 'h' pour indexer les années
data$h <- rep(0, nrow(data))
data$h[1] <- 1
for(i in 2:nrow(data))
if(data$Période2[i] == data$Période2[i-1]) {
data$h[i] <- data$h[i-1]} else {data$h[i] <- data$h[i-1]+1
}
data.frame(data$Période2, data$h, data$Ensemble_T) # check## data.Période2 data.h data.Ensemble_T
## 1 1996 1 3759500
## 2 1996 1 3797700
## 3 1996 1 3853100
## 4 1996 1 3892700
## 5 1997 2 3943200
## 6 1997 2 3983800
## 7 1997 2 4011300
## 8 1997 2 4024400
## 9 1998 3 4030200
## 10 1998 3 4022400
## 11 1998 3 4020300
## 12 1998 3 4036300
## 13 1999 4 4045000
## 14 1999 4 4041800
## 15 1999 4 3962600
## 16 1999 4 3876800
## 17 2000 5 3778900
## 18 2000 5 3654400
## 19 2000 5 3576900
## 20 2000 5 3456300
## 21 2001 6 3377200
## 22 2001 6 3354700
## 23 2001 6 3363500
## 24 2001 6 3428000
## 25 2002 7 3466200
## 26 2002 7 3498500
## 27 2002 7 3521300
## 28 2002 7 3553600
## 29 2003 8 3617900
## 30 2003 8 3648800
## 31 2003 8 3699700
## 32 2003 8 3756700
## 33 2004 9 3734600
## 34 2004 9 3769200
## 35 2004 9 3819000
## 36 2004 9 3858000
## 37 2005 10 3878200
## 38 2005 10 3883000
## 39 2005 10 3844300
## 40 2005 10 3767300
## 41 2006 11 3686800
## 42 2006 11 3582100
## 43 2006 11 3488100
## 44 2006 11 3409900
## 45 2007 12 3313600
## 46 2007 12 3233700
## 47 2007 12 3180900
## 48 2007 12 3113500
## 49 2008 13 3075200
## 50 2008 13 3059700
## 51 2008 13 3089800
## 52 2008 13 3197300
## 53 2009 14 3391000
## 54 2009 14 3592700
## 55 2009 14 3714000
## 56 2009 14 3823100
## 57 2010 15 3883400
## 58 2010 15 3937700
## 59 2010 15 3975200
## 60 2010 15 4006500
## 61 2011 16 4048200
## 62 2011 16 4085700
## 63 2011 16 4146700
## 64 2011 16 4217600
## 65 2012 17 4290700
## 66 2012 17 4359600
## 67 2012 17 4481700
## 68 2012 17 4601000
## 69 2013 18 4716800
## 70 2013 18 4790100
## 71 2013 18 4823600
## 72 2013 18 4889900
## 73 2014 19 4948800
## 74 2014 19 5014600
## 75 2014 19 5088200
## 76 2014 19 5183900
## 77 2015 20 5271600
## 78 2015 20 5381800
## 79 2015 20 5408900
## 80 2015 20 5452800
## 81 2016 21 5463100
## 82 2016 21 5426300
## 83 2016 21 5471300
## 84 2016 21 5469500
## 85 2017 22 5507300
## 86 2017 22 5550500
## 87 2017 22 5616500
## 88 2017 22 5620900
## 89 2018 23 5621000
## 90 2018 23 5627900
## 91 2018 23 5649600
# on crée le dataframe final
moyennes <- data.frame(c(1996:(1996+22)), rep(0,23))
names(moyennes) <- c("année", "moyenne")
moyennes## année moyenne
## 1 1996 0
## 2 1997 0
## 3 1998 0
## 4 1999 0
## 5 2000 0
## 6 2001 0
## 7 2002 0
## 8 2003 0
## 9 2004 0
## 10 2005 0
## 11 2006 0
## 12 2007 0
## 13 2008 0
## 14 2009 0
## 15 2010 0
## 16 2011 0
## 17 2012 0
## 18 2013 0
## 19 2014 0
## 20 2015 0
## 21 2016 0
## 22 2017 0
## 23 2018 0
# méthode : on utilise la variable 'h' pour calculer les moyennes annuelles
data[data$h == 1,]$Ensemble_T## [1] 3759500 3797700 3853100 3892700
## [1] 3825750
## année moyenne
## 1 1996 3825750
## 2 1997 3990675
## 3 1998 4027300
## 4 1999 3981550
## 5 2000 3616625
## 6 2001 3380850
## 7 2002 3509900
## 8 2003 3680775
## 9 2004 3795200
## 10 2005 3843200
## 11 2006 3541725
## 12 2007 3210425
## 13 2008 3105500
## 14 2009 3630200
## 15 2010 3950700
## 16 2011 4124550
## 17 2012 4433250
## 18 2013 4805100
## 19 2014 5058875
## 20 2015 5378775
## 21 2016 5457550
## 22 2017 5573800
## 23 2018 5632833