R/diag_COG.R
diag_COG.Rd
Effectuer un diagnostic sur le COG présent dans une base de données
diag_COG(
table_entree,
codgeo_entree = colnames(table_entree)[1],
ign_na = FALSE,
id_doubl = FALSE,
hypothese_COG = annee_ref,
table_diagnostic = TRUE
)
correspond à la table à diagnostiquer (ajout de la colonne de diagnostic au tableau en entrée, nouveaux paramètres optionnels ign_na et id_doubl, simplification du diagnostic)
est une chaîne de caractères qui indique le nom de la variable contenant les codes Insee communaux. Par défaut, il s'agit du nom de la première colonne de table_entree.
vaut TRUE si on souhaite ignorer les codes manquants. Valeur FALSE par défaut.
vaut TRUE si on souhaite ajouter une colonne d'identification des codes en double à l'export. Valeur FALSE par défaut.
(optionnelle) hypothèse formulée par l'utilisateur concernant l'année de référence de COG supposée de la base de données. Le diagnostic sera alors effectué par rapport à cette année de COG. vaut annee_ref (COG le plus récent) par défaut.
vaut TRUE si on souhaite obtenir en sortie une table avec un diagnostic de COG pour chaque ligne. vaut TRUE par défaut.
Le code officiel géographique le plus récent du package est actuellement celui au 01/01/2024.
Les millésimes des COG qui peuvent être utilisés sont à ce stade les suivants : 1968, 1975, 1982, 1990, 1999, annuel à partir de 2008.
Les dates de référence des codes officiels géographiques utilisés dans COGugaison sont les suivantes :
COG 1968 : à partir du 01/03/1968
COG 1975 : à partir du 20/02/1975
COG 1982 : à partir du 04/03/1982
COG 1990 : à partir du 05/03/1990
COG 1999 : à partir du 08/03/1999
Pour tous les autres COG : à partir du 01/01 de chaque année
Les différences entre les tables de passage Insee et non Insee sont les suivantes :
1982-03-03 (pris en compte par l'Insee seulement après le 04/03/1982): Flaignes-Havys (08169) est un rassemblement de Flaignes-Havys (08169), Havys (08221) [fusion simple].
2014-01-01 (pris en compte par l'Insee seulement au 01/01/2015) : Loisey (55298) s'est séparée en Loisey (55298), Culey (55138) [rétablissement].
1990-02-01 (pris en compte par l'Insee seulement après le 05/03/1990) : Le code commune de Oudon passe de 14624 à 14697 [changement de code dû à un changement de chef-lieu].
2014-01-07 (pris en compte par l'Insee dès le 01/01/2016) : Tôtes est rattachée à Notre-Dame-de-Fresnay qui devient L'Oudon (changement de code de l'Oudon de 14697 à 14472) [transfert de chef-lieu].
1981-09-28 (pris en compte par l'Insee dès le 20/02/1975) : Vaudreuil-Ex-Ensemble Urbain (27701) est créée à partir des parcelles d'Incarville (27351), de Léry (27365) , de Porte-Joie (27471) , de Poses (27474) , de Saint-Étienne-du-Vauvray (27537), de Saint-Pierre-du-Vauvray (27598), de Tournedos-sur-Seine (27651) et du Vaudreuil (27528) [création]. Cette situation étant complexe, nous avons pour le moment considéré que Vaudreuil-Ex-Ensemble Urbain (27701) est créée à partir de parcelles du Vaudreuil (27528) uniquement.
En 1968, les 4 communes qui auraient dû d'après le COG être codées 2B044,2B076,2B151 et 2A325 sont codées 20044,20076,20151 et 20325 dans les données Insee.
## Exemple 1
# Exemple d'une table dont le COG est au carré
sortie <- diag_COG(COG2010)
#> [1] "# ------------------------------"
#> [1] "# DIAGNOSTIC DE COG"
#> [1] "# ------------------------------"
#> [1] "# Synthèse"
#> [1] "# COG2010"
#> [1] "# ------------------------------"
#> [1] "# Diagnostic détaillé"
#> [1] "# Le fichier compte 36699 codes communes."
#> [1] "# Le diagnostic de COG correspond au COG le plus récent dans lequel l'ensemble des codes communes du fichier en entrée sont présents."
#>
#>
#> | | Nombre d'observations|
#> |:-------------|---------------------:|
#> |COG2010 | 36699|
#> |codes uniques | 36699|
## Exemple 2
# Exemple d'une table qui mix plusieurs COG
library(dplyr)
#>
#> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’:
#>
#> filter, lag
#> The following objects are masked from ‘package:base’:
#>
#> intersect, setdiff, setequal, union
table_fictive <- rbind(COG2014,COG2015,COG2013) %>%
distinct(CODGEO, .keep_all = TRUE) %>%
add_row(CODGEO = c(rep("01001",5),"75101",NA,"98756","ZZZZZ"))
# Sans hypothèse préalable sur le COG probable de la table
sortie <- diag_COG(table_fictive)
#> [1] "# ------------------------------"
#> [1] "# DIAGNOSTIC DE COG"
#> [1] "# ------------------------------"
#> [1] "# Synthèse"
#> [1] "# COG non identifiable"
#> [1] "# ------------------------------"
#> [1] "# Diagnostic détaillé"
#> [1] "# Le fichier compte 36693 codes communes."
#> [1] "# Dans la mesure où le COG n'est pas identifiable, pour chaque commune considérée, le diagnostic de COG correspond au COG le plus récent qui contient son code commune."
#>
#>
#> | | Nombre d'observations|
#> |:------------------------|---------------------:|
#> |2024 | 34939|
#> |2015 | 771|
#> |2016 | 468|
#> |2018 | 386|
#> |2017 | 59|
#> |2014 | 25|
#> |2023 | 13|
#> |2022 | 11|
#> |2021 | 10|
#> |2019 | 3|
#> |2020 | 3|
#> |2013 | 1|
#> |arrondissement municipal | 1|
#> |code indéterminé | 1|
#> |code manquant | 1|
#> |collectivité d'outre-mer | 1|
#> |codes uniques | 36688|
# En ayant une hypothèse préalable sur le COG de sortie de la table
COG_akinator(table_fictive$CODGEO)
#> NULL
sortie <- diag_COG(table_fictive, hypothese_COG = 2013)
#> [1] "# ------------------------------"
#> [1] "# DIAGNOSTIC DE COG"
#> [1] "# ------------------------------"
#> [1] "# Synthèse"
#> [1] "# COG non identifiable"
#> [1] "# ------------------------------"
#> [1] "# Diagnostic détaillé"
#> [1] "# Le fichier compte 36693 codes communes."
#> [1] "# Dans la mesure où le COG n'est pas identifiable, pour chaque commune considérée, le diagnostic de COG correspond au COG le plus proche de l'année de référence (2013) qui contient son code commune."
#>
#>
#> | | Nombre d'observations|
#> |:------------------------|---------------------:|
#> |2013 | 36686|
#> |2014 | 2|
#> |2015 | 1|
#> |arrondissement municipal | 1|
#> |code indéterminé | 1|
#> |code manquant | 1|
#> |collectivité d'outre-mer | 1|
#> |codes uniques | 36688|