Created
June 16, 2016 16:14
-
-
Save arnaudgodin/f046ef13513cc881258fd58a6bcf58f8 to your computer and use it in GitHub Desktop.
Émile2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #Étude sur l'enquête de la dynamique du travail | |
| #Par Arnaud Godin | |
| #Été 2016 | |
| #Version R | |
| #good_graph <- readline(prompt="Quel graphique veux-tu faire: ") | |
| library(foreign) | |
| dtr<-read.csv("edtr-75M0010-F-2010-fichier-famille-economique_F2.csv") | |
| #On génère les différentes variables nécessaires pour étudier les inégalités de revenu par l'indice de Gini et la courbe de Lorenz | |
| #Revenu de marché: | |
| revmarche<-dtr$mtinc27 | |
| #Revenu disponible: | |
| revdisponible<-dtr$mbinc27 | |
| #Revenu total avant impôt: | |
| revtotal<-dtr$ttinc27 | |
| #On définit une variable de poids plus facilement manipulable: | |
| poids<-dtr$wtcsld26 | |
| #Il faut installer le «package» permettant de réaliser les traitements sur les inégalités | |
| #install.packages("ineq") | |
| library(ineq) | |
| #On peut maintenant passer au calcul des coefficients de Gini (en utilisant le «package» "ineq": | |
| g1<-ineq(revmarche, type="Gini") #L'indice de Gini pour le revenu de marché | |
| g2<-ineq(revtotal, type="Gini") #L'indice de Gini pour le revenu total avant impôt | |
| g3<-ineq(revdisponible, type="Gini") #L'indice de Gini pour le revenu disponible | |
| #Le «package» reldist fait exactement la même chose, sauf qu'il permet d'ajouter les poids: | |
| #install.packages("reldist") | |
| library(reldist) | |
| #En utilisant le poid transversal de l'enquête: | |
| g4<-gini(revmarche, weights=poids) #L'indice de Gini pour le revenu de marché | |
| g5<-gini(revtotal, weights=poids) #L'indice de Gini pour le revenu total avant impôt | |
| g6<-gini(revdisponible, weights=poids) #L'indice de Gini pour le revenu disponible | |
| #On assigne ici les indices de Gini à un vecteur "Gini" et les types de revenus à un vecteur "Revenus" | |
| Gini<-c(g1, g2, g3) | |
| Gini_pondere<-c(g4, g5, g6) | |
| Revenus<-c("Revenu de marché", "Revenu total avant impôt", "Revenu disponible") | |
| #Il s'agit ensuite de placer les deux vecteurs dans un seul tableau | |
| typerevenu<-data.frame(Gini, Gini_pondere, row.names=Revenus) | |
| #Il est possible d'ordonner les résultats pour qu'ils soient plus beau à l'oeil une fois présentés | |
| tableaufinal<-format(typerevenu, digits=4, justifiy="right") | |
| #On fait un programme de présentation des résultats de type "input/output": | |
| #Il s'agit d'une boucle qui permet de voir les différents indices successivement | |
| repeat{ | |
| presentation_gini<-readline(prompt="Quels indices de Gini voudriez-vous voir ('Marche', 'Total', 'Disponible', 'tous' ou 'aucun')?:") | |
| if (presentation_gini=="Marche"){ | |
| print(tableaufinal["Revenu de marché",]) | |
| } else if (presentation_gini=="Total"){ | |
| print(tableaufinal["Revenu total avant impôt",]) | |
| } else if (presentation_gini=="Disponible"){ | |
| print(tableaufinal["Revenu disponible",]) | |
| } else if (presentation_gini=="tous") { | |
| print(tableaufinal) | |
| } else if (presentation_gini=="aucun"){ | |
| print("Parfait, passons aux courbes de Lorenz") | |
| } else { | |
| print("Invalide, il faut choisir entre 'Marche', 'Total', 'Disponible', 'tous' ou 'aucun'") | |
| } | |
| if (presentation_gini=="aucun"){ | |
| break | |
| } | |
| } | |
| #On passe ensuite aux courbes de Lorenz: | |
| clmarche<-Lc(revmarche, poids) #Courbe de lorenz pour le revenu de marché | |
| cldisponible<-Lc(revdisponible, poids) #Courbe de lorenz pour le revenu disponible | |
| cltotal<-Lc(revtotal, poids) #Courbe de lorenz pour le revenu total avant impôt | |
| #Avant de faire sortir les graphiques, on se concentre d'abord à trouver des couleurs contrastantes: | |
| #install.packages("RColorBrewer") | |
| library(RColorBrewer) | |
| couleur<-brewer.pal(n=3, name="Set1") | |
| couleur1<-brewer.pal(n=6, name="Dark2") | |
| #Il est maintenant possible de faire un graphique des différentes courbes de lorenz | |
| #On peut présenter les différentes options de graphiques seules en tapants "marche", "disponible" et "total" | |
| #Ici on fait le choix entre les courbes de Lorenz ordinaires ou généralisées: | |
| choix_graphique<-readline(prompt="Voulez-vous voir les courbes de Lorenz ordinaires('o') ou généralisées('g')?: ") | |
| if (choix_graphique=="o"){ | |
| good_graph <- readline(prompt="Quelle courbe de Lorenz dois-je présenter ('marche', 'disponible', 'total')?: ") | |
| if (good_graph == "marche") { | |
| plot(clmarche, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[1]) | |
| } else if (good_graph == "disponible") { | |
| plot(cldisponible, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[2]) | |
| } else if (good_graph == "total") { | |
| plot(cltotal, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[3]) | |
| } else { | |
| print("Graphique Invalide, il faut choisir entre 'marche', 'disponible' ou 'total' ") | |
| } | |
| } else if (choix_graphique=="g"){ | |
| good_graph <- readline(prompt="Quelle courbe de Lorenz dois-je présenter ('marche', 'disponible', 'total')?: ") | |
| if (good_graph == "marche") { | |
| plot(clmarche, general=TRUE, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[4]) | |
| } else if (good_graph == "disponible") { | |
| plot(cldisponible, general=TRUE, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[5]) | |
| } else if (good_graph == "total") { | |
| plot(cltotal, general=TRUE, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[6]) | |
| } else { | |
| print("Graphique Invalide, il faut choisir entre 'marche', 'disponible' ou 'total' ") | |
| } | |
| } else { | |
| print("Invalide, choisir entre 'o' ou 'g'") | |
| } | |
| #Permet de faire la superposition des courbes les quatres options sont disponibles | |
| question1<- readline(prompt="Dois-je superposer des courbes ('oui' ou 'non')?: ") | |
| if (question1== "oui"){ | |
| choix_graphique1<-readline(prompt="Voulez-vous voir superposées les courbes de Lorenz ordinaires('o') ou généralisées('g')?: ") | |
| if (choix_graphique1=="o"){ | |
| graph_multiples<- readline(prompt="Quelles courbes superposer ('marche disponible', 'marche total', 'disponible total' ou 'toutes')?: ") | |
| if (graph_multiples == "marche disponible") { | |
| plot(clmarche, main=NULL,xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[1]) | |
| lines(cldisponible, col=couleur[2]) | |
| } else if (graph_multiples == "marche total") { | |
| plot(clmarche, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[1]) | |
| lines(cltotal, col=couleur[3]) | |
| } else if (graph_multiples == "disponible total") { | |
| plot(cldisponible, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[2]) | |
| lines(cltotal, col=couleur[3]) | |
| }else if (graph_multiples=="toutes") { | |
| plot(clmarche, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[1]) | |
| lines(cldisponible, col=couleur[2]) | |
| lines(cltotal, col=couleur[3]) | |
| } else { | |
| print("Graphique Invalide, il faut choisir entre 'marche disponible', 'marche total', 'disponible total' ou 'toutes' ") | |
| } | |
| } else if (choix_graphique1=="g"){ | |
| graph_multiples<- readline(prompt="Quelles courbes superposer ('marche disponible', 'marche total', 'disponible total' ou 'toutes')?: ") | |
| if (graph_multiples == "marche disponible") { | |
| plot(clmarche, general=TRUE, main=NULL,xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[4]) | |
| lines(cldisponible, general=TRUE, col=couleur1[5]) | |
| } else if (graph_multiples == "marche total") { | |
| plot(clmarche, general=TRUE, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[4]) | |
| lines(cltotal, general=TRUE, col=couleur1[6]) | |
| } else if (graph_multiples == "disponible total") { | |
| plot(cldisponible, general=TRUE, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[5]) | |
| lines(cltotal, general=TRUE, col=couleur1[6]) | |
| }else if (graph_multiples=="toutes") { | |
| plot(clmarche, general=TRUE,main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[4]) | |
| lines(cldisponible, general=TRUE, col=couleur1[5]) | |
| lines(cltotal, general=TRUE, col=couleur1[6]) | |
| } else { | |
| print("Graphique Invalide, il faut choisir entre 'marche disponible', 'marche total', 'disponible total' ou 'toutes' ") | |
| } | |
| } | |
| } else if (question1=="non") { | |
| print("D'accord") | |
| } else{ | |
| print("Invalide, il faut choisir entre 'oui' ou 'non' ") | |
| } | |
| #Permet de repasser le processus ad vitam aeternam si nécessaire, pour sortir de la boucle il sufffit de spécifier "non" | |
| repeat{ | |
| question2<-readline(prompt="Autre chose ('oui' ou 'non') ?: ") | |
| if (question2== "oui"){ | |
| choix_graphique<-readline(prompt="Voulez-vous voir les courbes de Lorenz ordinaires('o') ou généralisées('g')?: ") | |
| if (choix_graphique=="o"){ | |
| good_graph <- readline(prompt="Quelle courbe de Lorenz dois-je présenter ('marche', 'disponible', 'total')?: ") | |
| if (good_graph == "marche") { | |
| plot(clmarche, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[1]) | |
| } else if (good_graph == "disponible") { | |
| plot(cldisponible, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[2]) | |
| } else if (good_graph == "total") { | |
| plot(cltotal, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[3]) | |
| } else { | |
| print("Graphique Invalide, il faut choisir entre 'marche', 'disponible' ou 'total' ") | |
| } | |
| } else if (choix_graphique=="g"){ | |
| good_graph <- readline(prompt="Quelle courbe de Lorenz dois-je présenter ('marche', 'disponible', 'total')?: ") | |
| if (good_graph == "marche") { | |
| plot(clmarche, general=TRUE, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[4]) | |
| } else if (good_graph == "disponible") { | |
| plot(cldisponible, general=TRUE, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[5]) | |
| } else if (good_graph == "total") { | |
| plot(cltotal, general=TRUE, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[6]) | |
| } else { | |
| print("Graphique Invalide, il faut choisir entre 'marche', 'disponible' ou 'total' ") | |
| } | |
| } else { | |
| print("Invalide, choisir entre 'o' ou 'g'") | |
| } | |
| question1<- readline(prompt="Dois-je superposer des courbes ('oui' ou 'non')?: ") | |
| if (question1== "oui"){ | |
| choix_graphique1<-readline(prompt="Voulez-vous voir superposées les courbes de Lorenz ordinaires('o') ou généralisées('g')?: ") | |
| if (choix_graphique1=="o"){ | |
| graph_multiples<- readline(prompt="Quelles courbes superposer ('marche disponible', 'marche total', 'disponible total' ou 'toutes')?: ") | |
| if (graph_multiples == "marche disponible") { | |
| plot(clmarche, main=NULL,xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[1]) | |
| lines(cldisponible, col=couleur[2]) | |
| } else if (graph_multiples == "marche total") { | |
| plot(clmarche, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[1]) | |
| lines(cltotal, col=couleur[3]) | |
| } else if (graph_multiples == "disponible total") { | |
| plot(cldisponible, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[2]) | |
| lines(cltotal, col=couleur[3]) | |
| }else if (graph_multiples=="toutes") { | |
| plot(clmarche, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur[1]) | |
| lines(cldisponible, col=couleur[2]) | |
| lines(cltotal, col=couleur[3]) | |
| } else { | |
| print("Graphique Invalide, il faut choisir entre 'marche disponible', 'marche total', 'disponible total' ou 'toutes' ") | |
| } | |
| } else if (choix_graphique1=="g"){ | |
| graph_multiples<- readline(prompt="Quelles courbes superposer ('marche disponible', 'marche total', 'disponible total' ou 'toutes')?: ") | |
| if (graph_multiples == "marche disponible") { | |
| plot(clmarche, general=TRUE, main=NULL,xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[4]) | |
| lines(cldisponible, general=TRUE, col=couleur1[5]) | |
| } else if (graph_multiples == "marche total") { | |
| plot(clmarche, general=TRUE, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[4]) | |
| lines(cltotal, general=TRUE, col=couleur1[6]) | |
| } else if (graph_multiples == "disponible total") { | |
| plot(cldisponible, general=TRUE, main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[5]) | |
| lines(cltotal, general=TRUE, col=couleur1[6]) | |
| }else if (graph_multiples=="toutes") { | |
| plot(clmarche, general=TRUE,main=NULL, xlab="Pourcentage des ménages", ylab="Pourcentage des revenus", col=couleur1[4]) | |
| lines(cldisponible, general=TRUE, col=couleur1[5]) | |
| lines(cltotal, general=TRUE, col=couleur1[6]) | |
| } else { | |
| print("Graphique Invalide, il faut choisir entre 'marche disponible', 'marche total', 'disponible total' ou 'toutes' ") | |
| } | |
| } | |
| } else if (question1=="non") { | |
| print("D'accord") | |
| } else{ | |
| print("Invalide, il faut choisir entre 'oui' ou 'non' ") | |
| } | |
| } else if (question2=="non"){ | |
| print("Merci, au revoir!") | |
| } else{ | |
| print("Invalide, il faut choisir entre 'oui' et 'non' ") | |
| } | |
| if (question2== "non"){ | |
| break | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment