knitr::opts_chunk$set(echo = TRUE, comment = "#>") library(data.table) library(lubridate) library(stringr) f.as_date <- function(x) paste0(as_date(x))
DT <- readRDS("V:/GI-Data/_ADMIS/R data/DECES_2020-01-07.rds") # import DT[, ID := as.integer(ID)] setkey(DT) dt <- DT[seq(1e4)] dt <- dcast( dt, ... ~ SOURCE_DERN_SERVICE, value.var = "DERNIER_SERVICE", fun = toString )
dt <- unique(DT[, .(ID, SEXE)], by = "ID") dt <- dt[, .(Freq = .N), keyby = .(SEXE)] dt[, Total := sum(Freq)] dt
Les dates de naissance sot toujours le 15e du mois.
dt <- unique(DT[, .(ID, DDN)], by = "ID") summary(dt$DDN)
Les dates de décès FIPA sont toujours le 15e du mois.
dt <- unique(DT[, .(ID, DECES_FIPA)], by = "ID") nrow(dt[!is.na(DECES_FIPA)]) # avec décès summary(dt$DECES_FIPA)
dt <- unique(DT[, .(ID, DECES_HOSPIT_POSTMORTEM)], by = "ID") nrow(dt[!is.na(DECES_HOSPIT_POSTMORTEM)]) # avec décès summary(dt$DECES_HOSPIT_POSTMORTEM)
dt <- unique(DT[, .(ID, DECES_HOSPIT_AUTRE)], by = "ID") nrow(dt[!is.na(DECES_HOSPIT_AUTRE)]) # avec décès summary(dt$DECES_HOSPIT_AUTRE)
dt <- unique(DT[, .(ID, DERNIER_SERVICE)], by = c("ID", "DERNIER_SERVICE")) nrow(dt[!is.na(DERNIER_SERVICE)]) # avec décès summary(dt$DERNIER_SERVICE)
Indique si l'individu possède au moins une date de décès.
DT[, Deces := TRUE] DT[ is.na(DECES_FIPA) & is.na(DECES_HOSPIT_AUTRE) & is.na(DECES_HOSPIT_POSTMORTEM), Deces := FALSE ]
L'âge des individus au 15 janvier 2020.
DT[, Age := as.integer(floor(difftime(as_date("2020-01-15"), DDN, units = "weeks") / 52.1429))] DT[, CatAge := cut(Age, breaks = seq(0, max(Age)+5, 5), right = FALSE)]
Indique seulement l'année et le mois des dates de décès puisque la date de FIPA est seulement le 15 du mois. La date du dernier service n'est pas nécessairement le 15, mais on va aussi la comparer pour savoir si elle est dans le même mois.
DT[!is.na(DECES_FIPA), xDeces_FIPA := str_sub(DECES_FIPA, 1, 7)] DT[!is.na(DECES_HOSPIT_POSTMORTEM), xDeces_Post := str_sub(DECES_HOSPIT_POSTMORTEM, 1, 7)] DT[!is.na(DECES_HOSPIT_AUTRE), xDeces_Hospit := str_sub(DECES_HOSPIT_AUTRE, 1, 7)] DT[!is.na(DERNIER_SERVICE), xDernService := str_sub(DERNIER_SERVICE, 1, 7)]
Comparer les dates de décès à savoir s'ils sont dans le même mois ou pas.
DT[ Deces == TRUE, `:=` (DateMinDeces = min(xDeces_FIPA, xDeces_Post, xDeces_Hospit, na.rm = T), DateMaxDeces = min(xDeces_FIPA, xDeces_Post, xDeces_Hospit, na.rm = T)), .(ID) ]
DT[ !is.na(DERNIER_SERVICE), `:=` (minDernServ = min(DERNIER_SERVICE), maxDernServ = max()) ]
Extraire les observations qui n'ont aucune donnée :
NA
NA
NA
NA
idx <- DT[ # numéro lignes qui respectent les conditions , .I[is.na(DECES_FIPA) & is.na(DECES_HOSPIT_AUTRE) & is.na(DECES_HOSPIT_POSTMORTEM) & is.na(DERNIER_SERVICE)] ] dt <- DT[idx] # sélection des obs dt[ , .N, .(CatAge) ]
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.