Vérifie la conformité d'une fréquence
Details
La fréquence d'une série temporelle est soit mensuelle (12L
ou
12.0
) soit trimestrielle (4L
ou 4.0
). Les autres fréquences ne sont pas
acceptées.
Cette fonction s'appuie essentiellement sur les fonctions
checkmate::check_numeric
, checkmate::check_int
et
checkmate::check_choice
.
Il y a néanmoins une petite subtilité : on vérifie si l'objet x
est de type
double ou integer.
Dans le premier cas, on affichera un warning et on corrigera l'objet au
format integer pour les traitements ultérieurs. En sortie, x
est retourné
de manière invisible.
Si l'argument warn
est FALSE
, alors la fonction ne retournera pas de
warning lors de l'évaluation.
Selon le préfixe de la fonction :
si le check réussi :
la fonction
assert_frequency
retourne l'objetx
de manière invisible;la fonction
check_frequency
retourne le booléenTRUE
.
si le check échoue :
la fonction
assert_frequency
retourne un message d'erreur;la fonction
check_frequency
retourne une chaîne de caractère signalant le problème.
Examples
assert_frequency(4L)
assert_frequency(12L)
check_frequency(4L)
#> [1] TRUE
check_frequency(12L)
#> [1] TRUE
# Avec des erreurs,
check_frequency(Inf, warn = FALSE)
#> [1] "* Inf Must be finite"
check_frequency(1:10)
#> [1] "* 1:10 Must have length 1 \n * 1:10 Must be element of set {'4','12'}, but is not atomic scalar"
check_frequency(1L)
#> [1] "* 1L Must be element of set {'4','12'}, but is '1'"