R/admis_analyse2.R

Defines functions admis_analyse2

Documented in admis_analyse2

#' Tableau d'analyse
#'
#' Variables indiquant le nombre de personnes pour certaines caractéristiques.
#'
#' `admis_analyse2()` correspond au *Bilan d'admissibilité sur la période d'étude* du protocole méthodologique (Objectifs secondaires).
#'
#' @param dt Dataset créé par la fonction `admis_analyse()`.
#'
#' @return data.table : Variable, Nbre, Ratio, nID.
#' @import data.table
#' @export
admis_analyse2 <- function(dt){

  if (is.null(dt)) {
    return(NULL)
  } else {
    dt <- copy(dt)
    DebutEtude <- attr(dt, "dates_etude")$Debut
    FinEtude <- attr(dt, "dates_etude")$Fin

    nID <- uniqueN(dt$ID)
    # N_debut_etude
    N_debut_etude <- nrow(dt[Dentree == DebutEtude])
    # N_debut_etude_nonsld
    N_debut_etude_nonsld <- nrow(dt[
      Dentree == DebutEtude &  # admissible au début
        (is.na(DDsld) |  # pas de date sld
           DDsld > DebutEtude)  # ou sld après debut d'étude
    ])
    # N_fin_etude
    N_fin_etude <- nrow(dt[Dsortie == FinEtude])
    # N_debut_fin
    N_debut_fin <- nrow(dt[
      Dsortie == FinEtude &  # admissible à la fin
        Dentree == DebutEtude  # et au début
    ])
    # N_admis_etude_continue
    N_admis_etude_continue <- sum(dt$Admis_Continue_Etude)  # nbre de TRUE
    # N_naissance
    N_naissance <- nrow(dt[
      DDN > DebutEtude &  # naissance durant la période d'étude
        Dentree > DebutEtude &  # est devenu admissible durant l'étude
        Dsortie == FinEtude  # et l'est encore à la fin
    ])
    # N_deces
    N_deces <- nrow(dt[
      DDC <= FinEtude &  # décès avant la fin de l'étude
        Dentree == DebutEtude  # admissible au début
    ])
    # N_entree_autre
    N_entree_autre <- nrow(dt[
      DDN <= DebutEtude &  # naissance avant l'étude = est vivant
        Dentree > DebutEtude &  # inadmissible au début, mais le devient par la suite
        Dsortie == FinEtude  # est admissible à la fin de l'étude
    ])
    # N_sortie_autre
    N_sortie_autre <- nrow(dt[
      Dentree == DebutEtude &  # admissible début étude
        Dsortie < FinEtude &  # inadmissible avant fin étude
        (is.na(DDC) |  # n'est pas mort
           DDC > FinEtude)  # mort après la fin de l'étude
    ])
    # N_sld
    N_sld <- nrow(dt[
      Dentree == DebutEtude &  # admissible au début de l'étude
        DDsld > DebutEtude & DDsld <= FinEtude  # a reçu des soins durant la période d'étude
    ])
    # N_fin_etude_nonsld
    N_fin_etude_nonsld <- nrow(dt[
      Dsortie == FinEtude &
        (is.na(DDsld) | DDsld > FinEtude)
    ])
    # N_debut_fin_nonsld
    N_debut_fin_nonsld <- nrow(dt[
      Dsortie == FinEtude &  # admissible à la fin
        Dentree == DebutEtude &  # et au début
        (is.na(DDsld) | DDsld > FinEtude)  # pas de sld durant étude
    ])
    # N_admis_etude_continue_nonsld
    N_admis_etude_continue_nonsld <- nrow(dt[
      Admis_Continue_Etude == TRUE &  # admissible en continue
        (is.na(DDsld) | DDsld > FinEtude)  # pas de sld durant étude
    ])
    # N_naissance_nonsld
    N_naissance_nonsld <- nrow(dt[
      DDN > DebutEtude &  # naissance durant la période d'étude
        Dentree > DebutEtude &  # est devenu admissible durant l'étude
        Dsortie == FinEtude &  # et l'est encore à la fin
        (is.na(DDsld) | DDsld > FinEtude)  # pas de sld durant étude
    ])
    # N_deces_nonsld
    N_deces_nonsld <- nrow(dt[
      DDC <= FinEtude &  # décès avant la fin de l'étude
        Dentree == DebutEtude &  # admissible au début
        (is.na(DDsld) | DDsld > FinEtude)  # pas de sld durant étude
    ])
    # N_entree_autre_nonsld
    N_entree_autre_nonsld <- nrow(dt[
      DDN <= DebutEtude &  # naissance avant l'étude = est vivant
        Dentree > DebutEtude &  # inadmissible au début, mais le devient par la suite
        Dsortie == FinEtude &  # est admissible à la fin de l'étude
        (is.na(DDsld) | DDsld > FinEtude)  # pas de sld durant étude
    ])
    # N_sortie_autre_nonsld
    N_sortie_autre_nonsld <- nrow(dt[
      Dentree == DebutEtude &  # admissible début étude
        Dsortie < FinEtude &  # inadmissible avant fin étude
        (is.na(DDC) | DDC > FinEtude) &  # pas mort durant l'étude
        (is.na(DDsld) | DDsld > FinEtude)  # pas de sld durant étude
    ])


    # Résultat
    tab_result <- data.table(
      # Nom des variables
      Variable = c(
        "N_debut_etude", "N_debut_etude_nonsld",
        "N_fin_etude", "N_fin_etude_nonsld",
        "N_debut_fin", "N_debut_fin_nonsld",
        "N_admis_etude_continue", "N_admis_etude_continue_nonsld",
        "N_naissance", "N_naissance_nonsld",
        "N_deces", "N_deces_nonsld",
        "N_entree_autre", "N_entree_autre_nonsld",
        "N_sortie_autre", "N_sortie_autre_nonsld",
        "N_sld"
      ),
      # Valeur des variables
      Nbre = c(
        N_debut_etude, N_debut_etude_nonsld,
        N_fin_etude, N_fin_etude_nonsld,
        N_debut_fin, N_debut_fin_nonsld,
        N_admis_etude_continue, N_admis_etude_continue_nonsld,
        N_naissance, N_naissance_nonsld,
        N_deces, N_deces_nonsld,
        N_entree_autre, N_entree_autre_nonsld,
        N_sortie_autre, N_sortie_autre_nonsld,
        N_sld
      )
    )
    tab_result[, Ratio := Nbre / nID]  # ratios par rapport au nombre de ID
    tab_result[, nID := eval(nID)]  # indiquer nombre de ID
    return(tab_result)
  }

}
INESSS-QC/admissibilite1 documentation built on Aug. 7, 2020, 9:39 a.m.