Skip to content
Snippets Groups Projects
Commit d84976f0 authored by Daniel.Kalioudjoglou's avatar Daniel.Kalioudjoglou
Browse files

secretisation par type de logement

parent c2aa132f
No related branches found
No related tags found
1 merge request!4debut de script de secretisation
Pipeline #197962 failed
library(readxl)
# Ajout des tranches
tranches_ecln <- read_excel("data-raw/tranches_ecln.xls")
ecln_type_lgt_secret_11 <- left_join(ecln_type_lgt_secret_10, tranches_ecln, by= "Indicateur")
# secretisation des EPCI --------------------------------------------------------------------------------------------------
secret_type_epci<- ecln_type_lgt_secret_11 %>%
filter(TypeZone =="Epci")
#secret induit,
#pour un meme indicateur et un meme département, pour ne pas retrouver la valeur d'un Epci
#en faisant la somme des variables de l'Epci
secret_type_epci1<- secret_type_epci %>%
group_by(Indicateur,DEP,Periode) %>%
mutate(A_nb_inf3=length(which(nb_promoteurs<3))) %>% #compte combien inférieur à 3
mutate(A_rang=rank(nb_promoteurs, ties.method = "first")) %>% #classe pour repérer les 2 plus petites valeurs
mutate(A_sec = case_when(
nb_promoteurs<3 ~ 1, #secret pour toutes les nb_promoteurs inférieurs à 3
A_nb_inf3== 0 ~ 0, #enlève le secret si aucune des communes rang 1 et 2 inférieur à 3
A_rang<3 ~ 1, #secret sur les 2 communes avec valeurs les plus basses
TRUE ~ 0))
# secret induit, pour un même Epci,une meme categorie et un meme trimestre, pour ne pas retrouver la valeur d'une variable
# en faisant la somme des variables de l'Epci
secret_type_epci1<- secret_type_epci1 %>%
group_by(TypeZone,categorie,CodeZone,Periode) %>%
mutate(B_nb_inf3=length(which(nb_promoteurs<3))) %>% #compte combien inférieur à 3
mutate(B_sec = case_when( # créé une colonne qui affiche 1 quand la donnée est à secrétiser
nb_promoteurs<3 ~ 1, #secret primaire pour toutes les valeurs inférieures à 3
B_nb_inf3 > 0 ~ 1, # secret induit si au moins 1 des 2 valeurs a moins de 3 promoteurs
TRUE ~ 0))
# masque le collectif pour un Epci dont l'individuel a été masqué par le secret induit
secret_type_epci2 <- secret_type_epci1 %>%
mutate (somme_secrets = A_sec + B_sec) %>%
group_by(CodeZone,categorie,Periode) %>% #pour chaque Epci
mutate(a_secretiser=length(which(somme_secrets>0))) # secretise toutes les donnes groupees
# regroupement des secrets, masquage des valeurs
secret_type_epci3<-secret_type_epci2 %>%
mutate(Valeur=as.character(Valeur)) %>%
mutate(Valeur=case_when( # masquage des valeurs
a_secretiser > 0 ~ "nc", #remplace valeur par "nc" si secret stat
TRUE ~ Valeur)) %>% # sinon garde sa valeur
ungroup() %>%
select(TypeZone,CodeZone,Zone,Periode,Indicateur,Valeur)
# secretisation des Départements ------------------------------------------------------------------------------------------
secret_type_dep<- ecln_type_lgt_secret_11 %>%
filter(TypeZone =="Départements")
#secret induit,
#pour un meme indicateur et une meme région, pour ne pas retrouver la valeur d'un département
#en faisant la somme des variables du département
secret_type_dep1<- secret_type_dep %>%
group_by(Indicateur,REG,Periode) %>%
mutate(A_nb_inf3=length(which(nb_promoteurs<3))) %>% #compte combien inférieur à 3
mutate(A_rang=rank(nb_promoteurs, ties.method = "first")) %>% #classe pour repérer les 2 plus petites valeurs
mutate(A_sec = case_when(
nb_promoteurs<3 ~ 1, #secret pour toutes les nb_promoteurs inférieurs à 3
A_nb_inf3== 0 ~ 0, #enlève le secret si aucune des communes rang 1 et 2 inférieur à 3
A_rang<3 ~ 1, #secret sur les 2 communes avec valeurs les plus basses
TRUE ~ 0))
# secret induit, pour un même Département,une meme categorie et un meme trimestre, pour ne pas retrouver la valeur d'une variable
# en faisant la somme des variables du Département
secret_type_dep1<- secret_type_dep1 %>%
group_by(TypeZone,categorie,CodeZone,Periode) %>%
mutate(B_nb_inf3=length(which(nb_promoteurs<3))) %>% #compte combien inférieur à 3
mutate(B_sec = case_when( # créé une colonne qui affiche 1 quand la donnée est à secrétiser
nb_promoteurs<3 ~ 1, #secret primaire pour toutes les valeurs inférieures à 3
B_nb_inf3 > 0 ~ 1, # secret induit si au moins 1 des 2 valeurs a moins de 3 promoteurs
TRUE ~ 0))
# masque le collectif pour un département dont l'individuel a été masqué par le secret induit
secret_type_dep2 <- secret_type_dep1 %>%
mutate (somme_secrets = A_sec + B_sec) %>%
group_by(CodeZone,categorie,Periode) %>% #pour chaque departement
mutate(a_secretiser=length(which(somme_secrets>0))) # secretise toutes les donnes groupees
# regroupement des secrets, masquage des valeurs
secret_type_dep3<-secret_type_dep2 %>%
mutate(Valeur=as.character(Valeur)) %>%
mutate(Valeur=case_when( # masquage des valeurs
a_secretiser > 0 ~ "nc", #remplace valeur par "nc" si secret stat
TRUE ~ Valeur)) %>% # sinon garde sa valeur
ungroup() %>%
select(TypeZone,CodeZone,Zone,Periode,Indicateur,Valeur)
# secretisation des régions et France--------------------------------------------------------------------------------------------------
# pas de secrétisation en fonction des données supra
secret_type_reg<- ecln_type_lgt_secret_11 %>%
filter(TypeZone =="Régions" | TypeZone =="France")
# secret induit, pour une même Région,une meme categorie et un meme trimestre, pour ne pas retrouver la valeur d'une variable
# en faisant la somme des variables de la Région
secret_type_reg1<- secret_type_reg %>%
group_by(TypeZone,categorie,CodeZone,Periode) %>%
mutate(B_nb_inf3=length(which(nb_promoteurs<3))) %>% #compte combien inférieur à 3
mutate(B_sec = case_when( # créé une colonne qui affiche 1 quand la donnée est à secrétiser
nb_promoteurs<3 ~ 1, #secret primaire pour toutes les valeurs inférieures à 3
B_nb_inf3 > 0 ~ 1, # secret induit si au moins 1 des 2 valeurs a moins de 3 promoteurs
TRUE ~ 0))
# masque le collectif pour un département dont l'individuel a été masqué par le secret induit
secret_type_reg2 <- secret_type_reg1 %>%
mutate (somme_secrets = B_sec) %>%
group_by(CodeZone,categorie,Periode) %>% #pour chaque région
mutate(a_secretiser=length(which(somme_secrets>0))) # secretise toutes les donnes groupees
# regroupement des secrets, masquage des valeurs
secret_type_reg3<-secret_type_reg2 %>%
mutate(Valeur=as.character(Valeur)) %>%
mutate(Valeur=case_when( # masquage des valeurs
a_secretiser > 0 ~ "nc", #remplace valeur par "nc" si secret stat
TRUE ~ Valeur)) %>% # sinon garde sa valeur
ungroup() %>%
select(TypeZone,CodeZone,Zone,Periode,Indicateur,Valeur)
# regroupement des zonages -------------------------------------------------------------------------------------------------------------
secret_par_type <-bind_rows(secret_type_epci3,secret_type_dep3,secret_type_reg3)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment