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

creation du fichier cogifie pret pour IT

parent c0ddd482
Branches
No related tags found
No related merge requests found
......@@ -4,17 +4,74 @@ library(dplyr)
library(COGiter)
library(stringr)
library(lubridate)
library(sf)
# paramêtres
millesime = 2023
# ma_region = "52"
annee_conservee = 2013 # on supprime les années antérieures
# Départements de ma région
# mes_departements <- list_dep_in_reg(ma-region)
BASE_PTZ_DHUP<- read_delim(paste0("/nfs/data/partage-PTZ-EPTZ/PTZ-EPTZ/BASE_PTZ_DHUP_",millesime,"_DREAL.csv"),
delim = ";", escape_double = FALSE, trim_ws = TRUE)
base <- BASE_PTZ_DHUP %>%
# suppression des années anciennes
base_intermediaire <- BASE_PTZ_DHUP %>%
filter (an >= annee_conservee)
# application de filtres conformément aux recommandations
# Dans les statistiques du bilan annuel de la SGFGAS, les données ne respectant pas ces critères
# sont considérées comme inexploitables : elles sont renseignées avec un ‘.’.
base_intermediaire <- base_intermediaire %>%
# # le code de statut de l’enregistrement (csen) est ‘V’ (validé)
# filter (csen == "V") %>%
# # le nombre de pièces (nppr) est inférieur ou égal à 10
# mutate(nppr = case_when(
# nppr > 10 ~ ".",
# TRUE ~ nppr)) %>%
# # la surface habitable (surh) est comprise entre 14 m2 et 350 m2
# mutate(surh = case_when(
# surh < 14 ~ ".",
# surh > 350 ~ ".",
# TRUE ~ surh)) %>%
# # le nombre de personnes (nper) est inférieur ou égal à 10
# mutate(nper = case_when(
# nper > 10 ~ ".",
# TRUE ~ nper)) %>%
# Pour les opérations de construction (avec ou sans l’achat du terrain, tope = 2 ou 3),
#si le type d’immeuble est collectif (timm=2), il est recommandé de le rectifier à individuel (timm=1)
mutate(timm = case_when(
timm == 2 & tope == 2 ~ 1,
timm == 2 & tope == 3 ~ 1,
TRUE ~ timm)
)
# #le montant de l’opération (vtto) doit être compris entre 7 600 € et 450 000 €
# mutate(vtto = case_when( #le montant de l’opération (vtto) doit être compris entre 7 600 € et 450 000 €
# vtto < 7600 ~ ".",
# vtto > 450000 ~ ".",
# TRUE ~ vtto)) %>%
# # le montant du prêt principal (vtpp) est compris entre 762 € et 350 000 €
# mutate(vtpp = case_when( # le montant du prêt principal (vtpp) est compris entre 762 € et 350 000 €
# vtpp < 762 ~ ".",
# vtpp > 350000 ~ ".",
# TRUE ~ vtpp)) %>%
# # le montant de chacun des autres prêts est inférieur à 350 000 €
# #
# # la durée des prêts (hors PTZ) est comprise entre 24 mois et 480 mois
# #
# # le montant des travaux (vttr) est inférieur au coût de l’opération
# #
# # le montant total des prêts (vtpr) est inférieur à 450 000 € et doit être supérieur à la somme des montants du prêt principal (vtpp) et du prêt à taux zéro (vtpz)
# #
# # le montant total de la première mensualité tous prêts confondus (vt1e) est comprise entre 15 € et 2 287 €
# #
# # le TEG du PTZ (tegz) est inférieur 12%
# #
# # les autres taux sont compris entre 1% et 12%, sauf à compter de 2017 où les taux peuvent être proche de 0%
# #
# # la durée du différé du prêt principal (ddpp) est inférieure à 60 mois
# #
base <- base_intermediaire %>%
# cpfl = code postal , cins = code insee, cdco = code commune déclaré
# lcom = libéllé commune, timm = type logement (1 = individuel, 2 = collectif)
# tope = type d'opération :
......@@ -70,13 +127,34 @@ ptz <- bind_rows(ptz_detail,ptz_etat,ptz_type,ptz_total) %>%
select(-an) %>%
pivot_wider(names_from = variable,values_from = valeur)
# rm(ptz_detail,ptz_etat,ptz_type,ptz_total)
rm(ptz_detail,ptz_etat,ptz_type,ptz_total,base_intermediaire,base)
# cogification
cogifiee_ptz<-cogifier(ptz %>% rename(DEPCOM=depcom))%>%
mutate_if(is.factor,as.character)
#faire un complete avec les communes manquantes
# liste des communes sans ptz
liste_communes_avec_ptz <- cogifiee_ptz %>%
filter(TypeZone == "Communes") %>%
select(CodeZone) %>% unique()
liste_dates <- cogifiee_ptz %>% select(date) %>% pull() %>% unique() # liste des dates utilisées
liste_communes_france <- communes %>% select(CodeZone=DEPCOM,NOM_DEPCOM)
# liste_communes_sans_ptz <- setdiff(liste_communes_france,liste_communes_avec_ptz)
communes_sans_ptz <- anti_join(liste_communes_france,liste_communes_avec_ptz) %>%
mutate(date= liste_dates[1],zonage = paste(CodeZone,NOM_DEPCOM,sep = ":")) %>%
select(zonage,date)
communes_sans_ptz$date <- sample (liste_dates , nrow(communes_sans_ptz), replace = TRUE)
communes_sans_ptz <- communes_sans_ptz %>%
complete(zonage,date) %>%
separate(zonage, into = c("CodeZone","Zone", sep = ":")) %>%
mutate(TypeZone = "Communes") %>%
select(TypeZone,Zone,CodeZone,date)
#regroupement
cogifiee_ptz <- bind_rows(cogifiee_ptz,communes_sans_ptz) %>%
mutate_all(funs(ifelse(is.na(.),0,.)))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment