Nothing
library(data.table)
dir <- "inst/extdata"
mapping <- list(
"aod.csv" = "AOD",
"aad.csv" = "AAD",
"ageMaximum.csv" = "Age maximum",
"dureeRequise.csv" = "Duree",
"dureeProratisation.csv" = "Duree proratisation"
)
ageDuree <- rbindlist(lapply(names(mapping), function(f) {
dt <- fread(file.path(dir, f), na.strings = c("", "NA"))
col_valeur <- setdiff(names(dt), c("caisse", "categorie", "dateNaissance", "dateApplication", "dateNaissanceEstimee"))
setnames(dt, col_valeur, "valeur")
dt[, grandeur := mapping[[f]]]
if(!"caisse" %in% names(dt)) dt[, caisse := NA_character_]
if(!"dateApplication" %in% names(dt)) dt[, dateApplication := NA_character_]
for(col in c("dateNaissance", "dateApplication")){
if(is.character(dt[[col]])){
dt[, (col) := lubridate::make_date(
year = substr(get(col), 1, 4),
month = substr(get(col), 6, 7)
)]
}
}
dt[, .(valeur, grandeur, caisse, categorie, dateNaissance, dateApplication)]
}))
# Pour les lignes avec dateApplication sans dateNaissance (ex: CNAVPL),
# on utilise l'approximation : dateNaissance ≈ dateApplication - aod * 12 mois
# C'est l'approximation retenue en l'absence de dateLiq.
ageDuree[is.na(dateNaissance) & !is.na(dateApplication) & !is.na(valeur),
dateNaissance := as.Date(dateApplication - lubridate::dmonths(valeur * 12))
]
# Les lignes avec aod=NA (bascule au droit commun) n'ont pas de dateNaissance → on les exclut
ageDuree <- ageDuree[!is.na(dateNaissance)]
# Reconversion (caisse, categorie) → categorie ancien format
ageDuree[, categorie := fcase(
caisse %in% c("SRE", "CNRACL") & categorie == "actif", "Actif fonction publique",
caisse %in% c("SRE", "CNRACL") & categorie == "superactif", "Superactif fonction publique",
caisse %in% c("SRE", "CNRACL") & categorie == "sedentaire", "Sedentaire fonction publique",
caisse == "Regime special" & categorie == "actif", "Actif regime special",
caisse == "Regime special" & categorie == "superactif", "Superactif regime special",
caisse == "Regime special" & categorie == "sedentaire", "Sedentaire regime special",
caisse == "CNAVPL" & is.na(categorie), "CNAVPL",
caisse == "CNAVPL" & categorie == "inaptitude", "CNAVPL inaptitude",
caisse == "MSA exploitant", "MSA exploitant",
caisse %in% c("Agirc-Arrco", "Ircantec"), "Agirc Arrco Ircantec",
categorie == "inaptitude", "Inapte",
is.na(caisse) & is.na(categorie), "Droit commun",
default = categorie
)]
# Dédupliquer (les duplications SRE/CNRACL et Agirc-Arrco/Ircantec donnent des doublons)
ageDuree <- unique(ageDuree[, .(valeur, grandeur, categorie, dateNaissance)])
setorder(ageDuree, grandeur, categorie, dateNaissance)
usethis::use_data(ageDuree, overwrite = TRUE)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.