Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
propre.ecln
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
DREAL Pays de la Loire
Centre de Services de la Donnée
propre.ecln
Commits
d84976f0
Commit
d84976f0
authored
1 year ago
by
Daniel.Kalioudjoglou
Browse files
Options
Downloads
Patches
Plain Diff
secretisation par type de logement
parent
c2aa132f
No related branches found
No related tags found
1 merge request
!4
debut de script de secretisation
Pipeline
#197962
failed
1 year ago
Stage: build
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
data-raw/03a_secretisation_type_logement.R
+155
-0
155 additions, 0 deletions
data-raw/03a_secretisation_type_logement.R
with
155 additions
and
0 deletions
data-raw/03a_secretisation_type_logement.R
+
155
−
0
View file @
d84976f0
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
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment