Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Créer des tables de passage à façon #15

Open
antuki opened this issue May 10, 2021 · 0 comments
Open

Créer des tables de passage à façon #15

antuki opened this issue May 10, 2021 · 0 comments

Comments

@antuki
Copy link
Owner

antuki commented May 10, 2021

Automatiser la création de ce type de tables de passage.

Illustration avec une table de passage de 2012 à 2020. Imaginons la commune A et B fusionnent en 2012 pour donner A et ensuite elles défusionnent pour redonner A et B en 2014. 2 possibilités pour la table de passage 2012 à 2020.

1. Lister toutes les modifications de façon exhaustive.

ancien_code nouveau_code annee evenement
A A 2012 f
B A 2012 f
A A 2014 d
A B 2014 d
pas1220 <- COG2012 %>%
  select("cod2012" = CODGEO) %>%
  left_join(select(PASSAGE_2012_2013, cod2012, cod2013), by = "cod2012") %>%
  mutate(cod2013 = case_when(is.na(cod2012) ~ cod2013, TRUE ~ cod2012)) %>%
  left_join(select(PASSAGE_2013_2014, cod2013, cod2014), by = "cod2013") %>%
  mutate(cod2014 = case_when(is.na(cod2013) ~ cod2014, TRUE ~ cod2013)) %>%
  left_join(select(PASSAGE_2014_2015, cod2014, cod2015), by = "cod2014") %>%
  mutate(cod2015 = case_when(is.na(cod2014) ~ cod2015, TRUE ~ cod2014)) %>%
  left_join(select(PASSAGE_2015_2016, cod2015, cod2016), by = "cod2015") %>%
  mutate(cod2016 = case_when(is.na(cod2015) ~ cod2016, TRUE ~ cod2015)) %>%
  left_join(select(PASSAGE_2016_2017, cod2016, cod2017), by = "cod2016") %>%
  mutate(cod2017 = case_when(is.na(cod2016) ~ cod2017, TRUE ~ cod2016)) %>%
  left_join(select(PASSAGE_2017_2018, cod2017, cod2018), by = "cod2017") %>%
  mutate(cod2018 = case_when(is.na(cod2017) ~ cod2018, TRUE ~ cod2017)) %>%
  left_join(select(PASSAGE_2018_2019, cod2018, cod2019), by = "cod2018") %>%
  mutate(cod2019 = case_when(is.na(cod2018) ~ cod2019, TRUE ~ cod2018)) %>%
  left_join(select(PASSAGE_2019_2020, cod2019, cod2020), by = "cod2019") %>%
  mutate(cod2020 = case_when(is.na(cod2019) ~ cod2020, TRUE ~ cod2019)) %>%
  select(cod2012, cod2020) %>%
  distinct() 

2. Simplifier la table de passage pour ne pas faire apparaître les étapes entre 2012 et 2020.

Table vide par rapport à l'exemple précédent avec communes A et B.

Simplifierais le temps de calcul : pas besoin de boucler comme actuellement sur toutes les années en 2012 et 2020 quand on fait un changement de COG d’une BDD (varNum ou typo).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant