R/group_vector.R

Defines functions group_vector

Documented in group_vector

#' Échantillonage
#'
#' Diviser un vecteur de valeur unique en `nSample` groupe(s) ayant un nombre de valeurs semblable.
#'
#' @param x Vecteur contenant les valeurs à diviser en groupe.
#' @param nSample Nombre de groupes.
#'
#' @return `list` contenant `nSample` vecteurs de longueur semblable.
#' @export
group_vector <- function(x, nSample){
  x <- sunique(x)  # valeur unique
  if(nSample > length(x)) stop("nSample doit être plus grand ou égal au nombre de valeurs unique de x.")
  nValues <- ceiling(length(x) / nSample)  # nombre de valeur par groupe
  ll <- list()  # liste où sera stocké les valeurs
  for(i in seq(0, nSample-1)){  # stocké les valeurs uniques dans le groupe i
    if(i == nSample-1){
      ll[[paste(i+1)]] <- x[seq(nValues*i+1, length(x))]  # possible que le dernier groupe ait moins de données
    } else {
      ll[[paste(i+1)]] <- x[seq(nValues*i+1, nValues*(i+1))]
    }
  }
  return(ll)
}
guiboucher/INESSS-inesss documentation built on April 20, 2020, 10:47 p.m.