#' Durée entre deux dates
#'
#' Indique le nombre de jours, de semaines ou d'années entre deux dates : `origin` - `x`.
#'
#' * La fonction retourne un vecteur de type `integer`, donc les valeurs sont arrondis **à l'entier inférieur**.
#'
#' @param x Vecteur contenant les dates d'analyse.
#' @param origin Date de référence.
#' @param unit 'days', 'weeks', 'years'. Unité.
#'
#' @return vecteur `integer`.
#' @importFrom lubridate is.Date as_date
#' @export
difftime_from_date <- function(
x, # vecteur date "AAAA-MM-JJ"
origin = Sys.Date(), # date de référence pour calculs
unit = "years" # days, weeks, years
){
# Fonction ----------------------------------------------------------------------------------------
.fct_date <- function(x, origin, unit){
if(unit == "years"){
return(as.integer(difftime(origin, x, units = "weeks") / 52))
} else if(unit == "weeks" | unit == "days"){
return(as.integer(difftime(origin, x, units = unit)))
} else {
stop("Les valeurs permises de unit sont {'days', 'weeks', 'years'}")
}
}
# Code --------------------------------------------------------------------------------------------
if(!is.Date(x)) x <- as_date(x) # convertir en Date si nécessaire
if(!is.Date(origin)) origin <- as_date(origin)
return(sapply(x, .fct_date, origin, unit))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.