| Title: | Standardized Economic Reporting and Automated Dynamic Writing / Synthèse d'Écrits Avec des Règles Automatisées et Dynamiques |
|---|---|
| Description: | Provides tools for generating dynamic and standardized economic narratives in R Markdown documents. The package is primarily designed for French-language statistical and economic publications. It includes functions to describe changes in levels, percentages, trends, accelerations and short-term economic developments using consistent linguistic rules. The package supports automated reporting workflows and reproducible economic writing. Fournit des outils permettant de générer des textes économiques dynamiques et standardisés dans des documents R Markdown. Le package est principalement conçu pour les publications statistiques et économiques en français. Il propose des fonctions permettant de décrire les évolutions de niveaux, de pourcentages, de tendances, d'accélérations et les évolutions conjoncturelles à l'aide de règles linguistiques homogènes. Le package facilite l'automatisation de la rédaction et la reproductibilité des publications économiques. |
| Authors: | Alexandre Cazenave-Lacroutz [aut] (ORCID: <https://orcid.org/0000-0003-3488-6092>), Jules Lejas [cre], Direction de l'animation de la recherche, des études et des statistiques (Dares) [cph] |
| Maintainer: | Jules Lejas <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.2.0 |
| Built: | 2026-06-03 09:41:51 UTC |
| Source: | https://github.com/cran/serad |
Calcule l'accélération entre trois niveaux successifs en comparant les taux de variation consécutifs.
a(x1, x2, x3)a(x1, x2, x3)
x1 |
Niveau le plus récent. |
x2 |
Niveau précédent. |
x3 |
Niveau le plus ancien. |
L'accélération correspond à la variation du taux entre
(x1, x2) et (x2, x3).
Un nombre numérique correspondant à l'accélération en pourcentage.
a(4, 2, 1) # 0 a(6, 2, 1) # 100 a(2, 1, 1) # valeur très élevée si taux précédent proche de zéroa(4, 2, 1) # 0 a(6, 2, 1) # 100 a(2, 1, 1) # valeur très élevée si taux précédent proche de zéro
Indique si x1 évolue à la hausse, à la baisse ou reste
inchangé par rapport à x2.
alahausse(x1, x2, seuil = 0.1, lang = get_serad_language())alahausse(x1, x2, seuil = 0.1, lang = get_serad_language())
x1 |
Niveau le plus récent. |
x2 |
Niveau le plus ancien. |
seuil |
Seuil d'égalité en valeur absolue. |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères.
Arrondit un nombre selon la règle arithmétique (0.5 vers le haut),
contrairement à round() qui utilise l'arrondi bancaire.
arrondi_tot(x, digits = 1)arrondi_tot(x, digits = 1)
x |
Nombre à arrondir. |
digits |
Entier indiquant le nombre de décimales. Positif pour les décimales, négatif pour les dizaines, centaines, etc. Par défaut : 1. |
Un nombre numérique arrondi.
arrondi_tot(1877.85, digits = 0) # 1878 arrondi_tot(1877.85, digits = 1) # 1877.9 arrondi_tot(1877.85, digits = -1) # 1880arrondi_tot(1877.85, digits = 0) # 1878 arrondi_tot(1877.85, digits = 1) # 1877.9 arrondi_tot(1877.85, digits = -1) # 1880
Indique si x1 est au-dessus ou en dessous de x2.
audessus(x1, x2, lang = get_serad_language())audessus(x1, x2, lang = get_serad_language())
x1 |
Niveau le plus récent. |
x2 |
Niveau le plus ancien. |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères.
Compare deux niveaux successifs et retourne une formulation selon l'évolution observée.
comparaison( x1, x2, hausse_defaut, egalite_defaut, baisse_defaut, seuil = 0.1, alt = 0, hausse_alt = hausse_defaut, egalite_alt = egalite_defaut, baisse_alt = baisse_defaut )comparaison( x1, x2, hausse_defaut, egalite_defaut, baisse_defaut, seuil = 0.1, alt = 0, hausse_alt = hausse_defaut, egalite_alt = egalite_defaut, baisse_alt = baisse_defaut )
x1 |
Niveau le plus récent. |
x2 |
Niveau le plus ancien. |
hausse_defaut |
Formulation en cas de hausse. |
egalite_defaut |
Formulation en cas de stabilité. |
baisse_defaut |
Formulation en cas de baisse. |
seuil |
Seuil d'égalité en valeur absolue. Par défaut : 0.1. |
alt |
Indicateur logique permettant d'utiliser une formulation alternative. |
hausse_alt |
Formulation alternative en cas de hausse. |
egalite_alt |
Formulation alternative en cas de stabilité. |
baisse_alt |
Formulation alternative en cas de baisse. |
La comparaison repose sur le taux de variation calculé via g.
Des cas particuliers sont traités lorsque x2 est nul ou négatif.
Une chaîne de caractères correspondant à la formulation retenue.
comparaison(1.04, 1, "augmente", "reste stable", "diminue") comparaison(0.9991, 1, "augmente", "reste stable", "diminue") comparaison(1, 1, "augmente", "reste égal", "diminue", seuil = 0)comparaison(1.04, 1, "augmente", "reste stable", "diminue") comparaison(0.9991, 1, "augmente", "reste stable", "diminue") comparaison(1, 1, "augmente", "reste égal", "diminue", seuil = 0)
Comparaison d'une variation à un seuil
comparaison_taux( g, hausse_defaut, egalite_defaut, baisse_defaut, seuil = 0.1, alt = 0, hausse_alt = hausse_defaut, egalite_alt = egalite_defaut, baisse_alt = baisse_defaut )comparaison_taux( g, hausse_defaut, egalite_defaut, baisse_defaut, seuil = 0.1, alt = 0, hausse_alt = hausse_defaut, egalite_alt = egalite_defaut, baisse_alt = baisse_defaut )
g |
Variation exprimée en pourcentage (5 signifie 5 %, 0.1 signifie 0.1 %). |
hausse_defaut |
Mot si hausse (forme par défaut). |
egalite_defaut |
Mot si égalité (forme par défaut). |
baisse_defaut |
Mot si baisse (forme par défaut). |
seuil |
Limite pour l'égalité (0.1 par défaut). |
alt |
Paramètre supplémentaire égal à 0 ou 1 (par exemple pour distinguer singulier/pluriel). |
hausse_alt |
Formulation alternative si alt = 1. |
egalite_alt |
Formulation alternative si alt = 1. |
baisse_alt |
Formulation alternative si alt = 1. |
Fonction interne utilisée par comparaison.
Une chaîne de caractères correspondant à la modalité choisie.
comparaison_taux(5, "augmente", "reste stable", "diminue") comparaison_taux(0.05, "augmente", "reste stable", "diminue") comparaison_taux(0, "as", "bs", "cs", seuil = 0, alt = 1, hausse_alt = "a", egalite_alt = "b", baisse_alt = "c")comparaison_taux(5, "augmente", "reste stable", "diminue") comparaison_taux(0.05, "augmente", "reste stable", "diminue") comparaison_taux(0, "as", "bs", "cs", seuil = 0, alt = 1, hausse_alt = "a", egalite_alt = "b", baisse_alt = "c")
Un dataframe en entrée.
Si non indiqué, la date est considérée comme étant la première colonne.
Pas besoin de la formater.
Si non indiqué, on suppose les valeurs les plus anciennes en haut
(temps croissant).
Toutes les autres colonnes sont considérées comme les composantes dont les
contributions doivent être analysées. Elles doivent être numériques.
contributions( df, temps = "croissant", vart, Tglissement = 1, seuilpc = 20, lang = get_serad_language() )contributions( df, temps = "croissant", vart, Tglissement = 1, seuilpc = 20, lang = get_serad_language() )
df |
Le dataframe en entrée |
temps |
"croissant" par défaut si du passé vers le présent. "décroissant" sinon. |
vart |
La variable de temps du dataframe. La première valeur par défaut. |
Tglissement |
Sur combien de périodes faut-il remonter pour calculer l'évolution à 1 par défaut. |
seuilpc |
Un seuil en dessous duquel la contribution (en valeur absolue) n'est pas prise en compte. 5 % par défaut. |
lang |
Langue de sortie : "fr" ou "en". |
Fonction écrite sur demande d'une utilisatrice.
Si aucune contribution n'est supérieure à seuilpc en valeur absolue, contributions() retourne a minima la plus grande contribution de même sens que la contribution totale.
Un descriptif ordonné des différentes glissements.
col0 = c("Y1T1", "Y1T2", "Y1trim3", "Y1T4","Y2T1","Y2-T2") col1 = c( 12, 6, 2, 86, 19, 10) col2 = c( 4, 8, 7, 34, 87, 14) col3 = c( 10, 20, 3, 66, 90, 54) col4 = c( 29, 12, 4, 16, 40, 94) col5 = c( 58, 76, 1, 3, 34, 19) df1 = data.frame(col0,col1,col2,col3,col4,col5) contributions(df1)col0 = c("Y1T1", "Y1T2", "Y1trim3", "Y1T4","Y2T1","Y2-T2") col1 = c( 12, 6, 2, 86, 19, 10) col2 = c( 4, 8, 7, 34, 87, 14) col3 = c( 10, 20, 3, 66, 90, 54) col4 = c( 29, 12, 4, 16, 40, 94) col5 = c( 58, 76, 1, 3, 34, 19) df1 = data.frame(col0,col1,col2,col3,col4,col5) contributions(df1)
Indique si x1 est davantage ou moins élevé que x2.
davantage(x1, x2, lang = get_serad_language())davantage(x1, x2, lang = get_serad_language())
x1 |
Niveau le plus récent. |
x2 |
Niveau le plus ancien. |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères.
Indique si x1 excède, est au niveau de ou est en dessous de
x2, en tenant compte du nombre grammatical.
depasse(x1, x2, sing = FALSE, lang = get_serad_language())depasse(x1, x2, sing = FALSE, lang = get_serad_language())
x1 |
Le niveau le plus récent. |
x2 |
Le niveau le plus ancien. |
sing |
Indicateur logique : FALSE si le sujet est pluriel, TRUE s'il est singulier (par défaut : pluriel). |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères.
Formate une différence numérique selon les règles d'arrondi et d'affichage utilisées dans le package.
format_delta( y, signe = TRUE, detail = getOption("serad")$arrondi_niv, lang = get_serad_language() )format_delta( y, signe = TRUE, detail = getOption("serad")$arrondi_niv, lang = get_serad_language() )
y |
La différence à formater. |
signe |
Indicateur logique : TRUE pour afficher le signe, FALSE sinon (par défaut : TRUE). |
detail |
Précision d'arrondi. Par défaut, on utilise getOption("serad")$arrondi_niv. |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères correspondant à la variation formatée.
format_delta(365484) # "+365 500" format_delta(365484, FALSE) # "365 500" format_delta(-365484) # "-365 500" format_delta(-365484, FALSE) # "365 500" format_delta(365484, lang = "en") # "+365,500"format_delta(365484) # "+365 500" format_delta(365484, FALSE) # "365 500" format_delta(-365484) # "-365 500" format_delta(-365484, FALSE) # "365 500" format_delta(365484, lang = "en") # "+365,500"
Formate une variation exprimée en pourcentage selon les règles d'arrondi et d'affichage du package.
format_g( y, signe = TRUE, detail = getOption("serad")$arrondi_pourcent, lang = get_serad_language() )format_g( y, signe = TRUE, detail = getOption("serad")$arrondi_pourcent, lang = get_serad_language() )
y |
La variation à formater. |
signe |
Indicateur logique : TRUE pour afficher le signe, FALSE pour le retirer (par défaut : TRUE). |
detail |
Nombre de chiffres après la virgule. Par défaut, on utilise getOption("serad")$arrondi_pourcent. |
lang |
Langue de sortie : "fr" ou "en". |
Le symbole "moins" peut être personnalisé via getOption("serad")$moins.
Une chaîne de caractères correspondant à la variation formatée (ex. "+5,4%", "-5,4%", "+5.4%").
format_g(5.3654, signe = FALSE) # "5,4 %" format_g(5.3654) # "+5,4 %" format_g(-5.3654, FALSE) # "5,4 %" format_g(-5.3654) # "-5,4 %" format_g(-5.3654, detail = 2) # "-5,37 %" format_g(0.35) # "+0,4 %" format_g(5.3654, lang = "en") # "+5.4%"format_g(5.3654, signe = FALSE) # "5,4 %" format_g(5.3654) # "+5,4 %" format_g(-5.3654, FALSE) # "5,4 %" format_g(-5.3654) # "-5,4 %" format_g(-5.3654, detail = 2) # "-5,37 %" format_g(0.35) # "+0,4 %" format_g(5.3654, lang = "en") # "+5.4%"
Formate un niveau numérique selon les règles d'arrondi définies dans le package.
format_niv( y, detail = getOption("serad")$arrondi_niv, lang = get_serad_language() )format_niv( y, detail = getOption("serad")$arrondi_niv, lang = get_serad_language() )
y |
Le niveau à formater. |
detail |
Précision d'arrondi. Par défaut, on utilise getOption("serad")$arrondi_niv. |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères correspondant au niveau formaté.
format_niv(365484) # "365 500" format_niv(365484, lang = "en") # "365,500"format_niv(365484) # "365 500" format_niv(365484, lang = "en") # "365,500"
Formate une variation exprimée en points selon les règles d'arrondi et d'affichage du package.
format_pts( y, signe = TRUE, detail = getOption("serad")$arrondi_pourcent, abrev = FALSE, lang = get_serad_language() )format_pts( y, signe = TRUE, detail = getOption("serad")$arrondi_pourcent, abrev = FALSE, lang = get_serad_language() )
y |
La variation à formater. |
signe |
Indicateur logique : TRUE pour afficher le signe, FALSE pour le retirer (par défaut : TRUE). |
detail |
Nombre de chiffres après la virgule. Par défaut, on utilise getOption("serad")$arrondi_pourcent. |
abrev |
Indicateur logique : TRUE pour utiliser l'abréviation ("pt"/"pts"), FALSE pour afficher "point(s)" (par défaut : FALSE). |
lang |
Langue de sortie : "fr" ou "en". |
Le symbole "moins" peut être personnalisé via getOption("serad")$moins.
Une chaîne de caractères correspondant à la variation formatée (ex. "+5,4 points", "+5.4 points").
format_pts(5.3654, signe = FALSE) # "5,4 points" format_pts(1.3654, signe = FALSE) # "1,4 point" format_pts(5.3654, abrev = TRUE) # "+5,4 pts" format_pts(-5.3654, FALSE) # "5,4 points" format_pts(-5.3654) # "-5,4 points" format_pts(-5.3654, detail = 2) # "-5,37 points" format_pts(0.35) # "+0,4 points"format_pts(5.3654, signe = FALSE) # "5,4 points" format_pts(1.3654, signe = FALSE) # "1,4 point" format_pts(5.3654, abrev = TRUE) # "+5,4 pts" format_pts(-5.3654, FALSE) # "5,4 points" format_pts(-5.3654) # "-5,4 points" format_pts(-5.3654, detail = 2) # "-5,37 points" format_pts(0.35) # "+0,4 points"
Calcule la variation relative entre x1 et x2,
exprimée en pourcentage.
g(x1, x2, eps = 1e-08)g(x1, x2, eps = 1e-08)
x1 |
Niveau le plus récent. |
x2 |
Niveau le plus ancien. |
eps |
Valeur utilisée à la place de |
Si x2 = 0, la valeur epsilon définie par
getOption("serad")$eps est utilisée afin d'éviter une division
par zéro. Un message d'avertissement est émis dans ce cas.
Il est possible de modifier cette valeur :
serad0 <- getOption("serad")
serad0$eps <- 0
options(serad = serad0)
Une valeur numérique correspondant à la variation en pourcentage (par exemple, si x1 = 2 * x2, la fonction retourne 100).
g(2, 1) # 100 g(2, 0) # valeur très élevée et avertissementg(2, 1) # 100 g(2, 0) # valeur très élevée et avertissement
Décrit une évolution sous forme nominale à partir de deux niveaux, sans ajouter la valeur de variation.
g_nom( x1, x2, evolution = c("pourcents", "points"), titre = FALSE, lang = get_serad_language() )g_nom( x1, x2, evolution = c("pourcents", "points"), titre = FALSE, lang = get_serad_language() )
x1 |
Le niveau le plus récent. |
x2 |
Le niveau le plus ancien. |
evolution |
Type d'évolution :
|
titre |
Indicateur logique : TRUE pour supprimer l'article initial et mettre une majuscule, notamment en début de titre. |
lang |
Langue de sortie : "fr" ou "en". |
La fonction calcule d'abord une évolution à partir de x1
et x2 :
si evolution = "pourcents", elle utilise
g ;
si evolution = "points", elle calcule x1 - x2.
La valeur obtenue est ensuite transmise à g_nom_taux,
qui détermine la formulation à partir de la table
getOption("serad")$evo_simple.
Une chaîne de caractères correspondant à la formulation nominale retenue (par exemple : "une forte hausse").
Les formulations utilisées par cette fonction proviennent de la table
getOption("serad")$evo_simple.
Pour modifier les seuils ou les libellés, voir
init_serad.
g_nom(1.04, 1) g_nom(1.01, 1) g_nom(1.004, 1) g_nom(1.001, 1) g_nom(1, 1) g_nom(0.997, 1) g_nom(0.95, 1) g_nom(0.95, 1, evolution = "points")g_nom(1.04, 1) g_nom(1.01, 1) g_nom(1.004, 1) g_nom(1.001, 1) g_nom(1, 1) g_nom(0.997, 1) g_nom(0.95, 1) g_nom(0.95, 1, evolution = "points")
Décrit l'évolution entre x1 et x2
sous forme nominale suivie du pourcentage correspondant.
g_nom_simple(x1, x2, lang = get_serad_language())g_nom_simple(x1, x2, lang = get_serad_language())
x1 |
Le niveau le plus récent. |
x2 |
Le niveau le plus ancien. |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères.
Décrit une évolution exprimée en pourcentage sous forme nominale (par exemple : "une forte hausse").
g_nom_taux(g, titre = FALSE, lang = get_serad_language())g_nom_taux(g, titre = FALSE, lang = get_serad_language())
g |
L'évolution en pourcentage. |
titre |
Indicateur logique : TRUE pour supprimer l'article initial et mettre une majuscule, notamment en début de titre. |
lang |
Langue de sortie : "fr" ou "en". |
La fonction sélectionne, dans la table
getOption("serad")$evo_simple, la première ligne dont
le seuil est strictement inférieur à g.
Elle renvoie ensuite la colonne nom correspondante.
Si titre = TRUE, l'article initial est supprimé et la
première lettre restante est mise en majuscule.
Une chaîne de caractères décrivant l'évolution (par exemple : "une forte hausse", "une stabilité").
Les formulations utilisées par cette fonction proviennent de la table
getOption("serad")$evo_simple.
Pour modifier les seuils ou les libellés, voir
init_serad.
g_nom_taux(4) g_nom_taux(1) g_nom_taux(0.4) g_nom_taux(0.1) g_nom_taux(0) g_nom_taux(-0.3) g_nom_taux(-1) g_nom_taux(-4) g_nom_taux(-5)g_nom_taux(4) g_nom_taux(1) g_nom_taux(0.4) g_nom_taux(0.1) g_nom_taux(0) g_nom_taux(-0.3) g_nom_taux(-1) g_nom_taux(-4) g_nom_taux(-5)
Décrit une évolution sous forme verbale à partir de deux niveaux, sans tenir compte d'une éventuelle accélération, et en ajoutant la valeur de variation.
g_verbe( x1, x2, sing = TRUE, evolution = c("pourcents", "points"), stable_sans_valeur = TRUE, lang = get_serad_language() )g_verbe( x1, x2, sing = TRUE, evolution = c("pourcents", "points"), stable_sans_valeur = TRUE, lang = get_serad_language() )
x1 |
Le niveau le plus récent. |
x2 |
Le niveau le plus ancien. |
sing |
Indicateur logique : TRUE si le sujet est singulier (par défaut), FALSE sinon. |
evolution |
Type d'évolution :
|
stable_sans_valeur |
Indicateur logique. TRUE (par défaut) : n'affiche pas la valeur en cas de stabilité. FALSE : affiche la valeur après la formulation de stabilité. |
lang |
Langue de sortie : "fr" ou "en". |
La fonction calcule d'abord une évolution à partir de x1
et x2 :
si evolution = "pourcents", elle utilise
g ;
si evolution = "points", elle calcule x1 - x2.
La valeur obtenue est ensuite transmise à g_verbe_taux,
qui détermine la formulation à partir de la table
getOption("serad")$evo_simple.
Une chaîne de caractères correspondant à la formulation verbale retenue, par exemple : "bondit de 10,0 %".
Les formulations utilisées par cette fonction proviennent de la table
getOption("serad")$evo_simple.
Pour modifier les seuils ou les libellés, voir
init_serad.
g_verbe(1.1, 1) g_verbe(1.04, 1) g_verbe(1.01, 1, sing = FALSE) g_verbe(1.003, 1) g_verbe(0.999, 1) g_verbe(0.999, 1, stable_sans_valeur = FALSE) g_verbe(0.96, 1) g_verbe(0.79, 1)g_verbe(1.1, 1) g_verbe(1.04, 1) g_verbe(1.01, 1, sing = FALSE) g_verbe(1.003, 1) g_verbe(0.999, 1) g_verbe(0.999, 1, stable_sans_valeur = FALSE) g_verbe(0.96, 1) g_verbe(0.79, 1)
Décrit une évolution sous forme verbale, sans tenir compte d'une éventuelle accélération, et suivie de la valeur formatée.
g_verbe_taux( g, sing = TRUE, evolution = c("pourcents", "points"), stable_sans_valeur = TRUE, lang = get_serad_language() )g_verbe_taux( g, sing = TRUE, evolution = c("pourcents", "points"), stable_sans_valeur = TRUE, lang = get_serad_language() )
g |
L'évolution. |
sing |
Indicateur logique : TRUE si le sujet est singulier (par défaut), FALSE sinon. |
evolution |
Type d'évolution :
|
stable_sans_valeur |
Indicateur logique : TRUE (par défaut) pour ne rien ajouter après une stabilité. Si FALSE, ajoute la valeur après la formulation de stabilité. |
lang |
Langue de sortie : "fr" ou "en". |
La fonction sélectionne, dans la table
getOption("serad")$evo_simple, la première ligne dont
le seuil est strictement inférieur à g.
Si sing = TRUE, la fonction renvoie la colonne verbe_sing.
Sinon, elle renvoie verbe_plur.
Une chaîne de caractères décrivant l'évolution.
Les formulations utilisées par cette fonction proviennent de la table
getOption("serad")$evo_simple.
Pour modifier les seuils ou les libellés, voir
init_serad.
g_verbe,
format_g,
format_pts,
init_serad
g_verbe_taux(10) g_verbe_taux(-0.1)g_verbe_taux(10) g_verbe_taux(-0.1)
Retourne la langue actuellement utilisée par {serad}.
get_serad_language()get_serad_language()
Une chaîne de caractères indiquant la langue courante ("fr" ou "en").
Décrit l'évolution sous forme nominale à partir de trois niveaux, en tenant compte de l'accélération entre deux variations successives.
gETa_nom(x1, x2, x3, titre = FALSE, alea = 0, lang = get_serad_language())gETa_nom(x1, x2, x3, titre = FALSE, alea = 0, lang = get_serad_language())
x1 |
Niveau le plus récent. |
x2 |
Niveau précédent. |
x3 |
Niveau le plus ancien. |
titre |
Indicateur logique : TRUE pour supprimer l'article initial et mettre une majuscule, notamment en début de titre. |
alea |
Paramètre numérique compris entre 0 et 1 contrôlant
l'utilisation de formulations alternatives. Si |
lang |
Langue de sortie : "fr" ou "en". |
La fonction calcule d'abord deux évolutions successives :
g1 <- serad::g(x1, x2) et g2 <- serad::g(x2, x3).
Ces deux variations sont ensuite transmises à
gETa_nom_taux, qui calcule leur accélération à l'aide
de a et détermine la formulation nominale appropriée
à partir de la table getOption("serad")$evo_accel.
Une formulation alternative peut être utilisée via la table
getOption("serad")$evo_accel_alt. Le choix entre la
formulation principale et la variante dépend du paramètre alea.
Une chaîne de caractères correspondant à la formulation nominale retenue.
Les formulations utilisées par cette fonction proviennent des tables
getOption("serad")$evo_accel et
getOption("serad")$evo_accel_alt.
Pour modifier les seuils, les conditions ou les libellés, voir
init_serad.
gETa_nom_taux,
g,
a,
init_serad
gETa_nom(1.00049, 1, 0.9996) gETa_nom(1.1, 1, 0.99) gETa_nom(1.003, 1, 0.99) gETa_nom(0.96, 1, 1.01) gETa_nom(0.8, 1, 0.99) gETa_nom(1.1, 1, 0.99, alea = 0.5)gETa_nom(1.00049, 1, 0.9996) gETa_nom(1.1, 1, 0.99) gETa_nom(1.003, 1, 0.99) gETa_nom(0.96, 1, 1.01) gETa_nom(0.8, 1, 0.99) gETa_nom(1.1, 1, 0.99, alea = 0.5)
Décrit l'évolution sous forme nominale en tenant compte de l'accélération entre deux variations successives.
gETa_nom_taux(g1, g2, titre = FALSE, alea = 0, lang = get_serad_language())gETa_nom_taux(g1, g2, titre = FALSE, alea = 0, lang = get_serad_language())
g1 |
Dernière évolution, exprimée en pourcentage. |
g2 |
Évolution précédente, exprimée en pourcentage. |
titre |
Indicateur logique : TRUE pour supprimer l'article initial et mettre une majuscule, notamment en début de titre. |
alea |
Paramètre numérique compris entre 0 et 1 contrôlant
l'utilisation de formulations alternatives. Si |
lang |
Langue de sortie : "fr" ou "en". |
La fonction calcule d'abord l'accélération entre g1
et g2 à l'aide de a.
Elle parcourt ensuite la table getOption("serad")$evo_accel
ligne par ligne. Chaque ligne contient un ensemble de conditions
sur g1, g2 et l'accélération. La première ligne dont
toutes les conditions sont vérifiées détermine la formulation
retenue.
Une formulation alternative peut être utilisée via la table
getOption("serad")$evo_accel_alt, qui contient une variante
pour chaque ligne de evo_accel. Le choix entre la formulation
principale et la variante dépend du paramètre alea.
Si titre = TRUE, l'article initial est supprimé et la
première lettre restante est mise en majuscule.
Une chaîne de caractères correspondant à la formulation nominale retenue (par exemple : "une accélération", "une stabilisation").
Les formulations utilisées par cette fonction proviennent des tables
getOption("serad")$evo_accel et
getOption("serad")$evo_accel_alt.
Pour modifier les seuils, les conditions ou les libellés, voir
init_serad.
a,
gETa_verbe_taux,
init_serad
gETa_nom_taux(0.049, 0.049) gETa_nom_taux(10, 1) gETa_nom_taux(-4, 1, titre = TRUE) gETa_nom_taux(-21, 1) gETa_nom_taux(10, 1, alea = 0.5)gETa_nom_taux(0.049, 0.049) gETa_nom_taux(10, 1) gETa_nom_taux(-4, 1, titre = TRUE) gETa_nom_taux(-21, 1) gETa_nom_taux(10, 1, alea = 0.5)
Décrit l'évolution sous forme verbale à partir de trois niveaux, en tenant compte de l'accélération entre deux variations successives.
gETa_verbe(x1, x2, x3, sing = TRUE, alea = 0, lang = get_serad_language())gETa_verbe(x1, x2, x3, sing = TRUE, alea = 0, lang = get_serad_language())
x1 |
Niveau le plus récent. |
x2 |
Niveau précédent. |
x3 |
Niveau le plus ancien. |
sing |
Indicateur logique : TRUE si le sujet est singulier (par défaut), FALSE sinon. |
alea |
Paramètre numérique compris entre 0 et 1 contrôlant
l'utilisation de formulations alternatives. Si |
lang |
Langue de sortie : "fr" ou "en". |
La fonction calcule d'abord deux évolutions successives :
g1 <- serad::g(x1, x2) et g2 <- serad::g(x2, x3).
Ces deux variations sont ensuite transmises à
gETa_verbe_taux, qui calcule leur accélération à l'aide
de g et détermine la formulation verbale appropriée
à partir de la table getOption("serad")$evo_accel.
Une formulation alternative peut être utilisée via la table
getOption("serad")$evo_accel_alt. Le choix entre la formulation
principale et la variante dépend du paramètre alea.
Une chaîne de caractères correspondant à la formulation verbale retenue.
Les formulations utilisées par cette fonction proviennent des tables
getOption("serad")$evo_accel et
getOption("serad")$evo_accel_alt.
Pour modifier les seuils, les conditions ou les libellés, voir
init_serad.
gETa_verbe_taux,
g,
init_serad
gETa_verbe(1.00049, 1, 0.9996) gETa_verbe(1.1, 1, 0.99) gETa_verbe(1.003, 1, 0.99, sing = FALSE) gETa_verbe(0.96, 1, 1.01) gETa_verbe(1.1, 1, 0.99, alea = 0.5)gETa_verbe(1.00049, 1, 0.9996) gETa_verbe(1.1, 1, 0.99) gETa_verbe(1.003, 1, 0.99, sing = FALSE) gETa_verbe(0.96, 1, 1.01) gETa_verbe(1.1, 1, 0.99, alea = 0.5)
Décrit l'évolution sous forme verbale en tenant compte de l'accélération entre deux variations successives.
gETa_verbe_taux(g1, g2, sing = TRUE, alea = 0, lang = get_serad_language())gETa_verbe_taux(g1, g2, sing = TRUE, alea = 0, lang = get_serad_language())
g1 |
Dernière évolution, exprimée en pourcentage. |
g2 |
Évolution précédente, exprimée en pourcentage. |
sing |
Indicateur logique : TRUE si le sujet est singulier (par défaut), FALSE sinon. |
alea |
Nombre réel compris entre 0 et 1 contrôlant
l'utilisation de formulations alternatives. Si |
lang |
Langue de sortie : "fr" ou "en". |
La fonction calcule d'abord l'accélération entre g1
et g2 à l'aide de a.
Elle parcourt ensuite la table getOption("serad")$evo_accel
ligne par ligne. Chaque ligne contient un ensemble de conditions
sur g1, g2 et l'accélération. La première ligne pour laquelle
toutes les conditions sont vérifiées détermine la formulation
retenue.
Une formulation alternative peut être utilisée via la table
getOption("serad")$evo_accel_alt. Le choix entre la
formulation principale et la variante dépend du paramètre alea.
Si sing = TRUE, la fonction renvoie la colonne verbe_sing.
Sinon, elle renvoie verbe_plur.
Une chaîne de caractères correspondant à la formulation verbale retenue (par exemple : "accélère", "se stabilise").
Les formulations utilisées par cette fonction proviennent des tables
getOption("serad")$evo_accel et
getOption("serad")$evo_accel_alt.
Pour modifier les seuils, les conditions ou les libellés, voir
init_serad.
gETa_verbe_taux(0.049, 0.049) gETa_verbe_taux(10, 1) gETa_verbe_taux(4, 1, FALSE) gETa_verbe_taux(-4, 1) gETa_verbe_taux(-21, 1) gETa_verbe_taux(10, 1, alea = 0.5)gETa_verbe_taux(0.049, 0.049) gETa_verbe_taux(10, 1) gETa_verbe_taux(4, 1, FALSE) gETa_verbe_taux(-4, 1) gETa_verbe_taux(-21, 1) gETa_verbe_taux(10, 1, alea = 0.5)
Les fonctions init_serad_fr() et init_serad_en() définissent
l'ensemble des règles utilisées par {serad} pour produire des textes
de conjoncture.
Elles initialisent notamment :
les règles d'arrondi ;
le symbole de signe négatif ;
les seuils d'évolution ;
les tables de correspondance entre évolutions et formulations ;
les règles de gestion de l'accélération.
init_serad_en() init_serad_fr()init_serad_en() init_serad_fr()
Les principales structures utilisées sont :
evo_simple : utilisée pour les évolutions simples
(g_nom_taux, g_verbe_taux) ;
evo_accel : utilisée pour les évolutions tenant compte
de l'accélération
(gETa_nom_taux, gETa_verbe_taux) ;
evo_accel_alt : variantes utilisées lorsque l'argument
alea est activé.
Pas de valeur de retour, appelée pour ses effets de bord.
La méthode recommandée pour personnaliser les règles de rédaction
consiste à copier le contenu de init_serad_fr() ou
init_serad_en() dans un script utilisateur, puis à modifier
directement les tables et les seuils.
Exemple :
# Copier le contenu de init_serad_fr() serad0 <- list() serad0$evo_simple <- tibble::tribble( ~seuil, ~verbe_sing, ~verbe_plur, ~nom, 1, "augmente", "augmentent", "une hausse", 0, "est stable", "sont stables", "une stabilité", -Inf, "diminue", "diminuent", "une baisse" ) options(serad = serad0)
Cette approche permet :
une personnalisation complète des formulations ;
une adaptation aux conventions métier ;
une reproductibilité via un script versionné.
g_nom_taux,
g_verbe_taux,
gETa_nom_taux,
gETa_verbe_taux
Retourne la formulation du mois situé à k périodes
après le mois indiqué.
nextMois( mois, annee, type = c("Annee", "autres"), majuscule = FALSE, k = 1, lang = get_serad_language() )nextMois( mois, annee, type = c("Annee", "autres"), majuscule = FALSE, k = 1, lang = get_serad_language() )
mois |
Mois sous forme numérique : 1 à 12. |
annee |
Année sur 4 chiffres. |
type |
"Annee" (par défaut) ou "autres". |
majuscule |
Indicateur logique : TRUE pour une majuscule initiale, FALSE sinon. |
k |
Décalage en nombre de mois. Par défaut : 1 (mois suivant). |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères correspondant au mois suivant.
nextMois(3, 2023) nextMois(12, 2023) nextMois(12, 2023, k = 2)nextMois(3, 2023) nextMois(12, 2023) nextMois(12, 2023, k = 2)
Retourne la formulation du trimestre situé à k périodes
après le trimestre indiqué.
nextTrim( trim, annee, type = c("lettres", "chiffres"), majuscule = FALSE, exposant = TRUE, k = 1, lang = get_serad_language() )nextTrim( trim, annee, type = c("lettres", "chiffres"), majuscule = FALSE, exposant = TRUE, k = 1, lang = get_serad_language() )
trim |
Trimestre sous forme numérique : 1, 2, 3 ou 4. |
annee |
Année sur 4 chiffres. |
type |
"lettres" (par défaut) ou "chiffres". |
majuscule |
Indicateur logique : TRUE pour une majuscule initiale, FALSE sinon. |
exposant |
Indicateur logique : TRUE pour afficher les exposants Markdown (ex. "1^er^"), FALSE pour afficher "1er". |
k |
Décalage en nombre de trimestres. Par défaut : 1 (trimestre suivant). |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères correspondant au trimestre suivant.
nextTrim(3, 2023) nextTrim(4, 2023)nextTrim(3, 2023) nextTrim(4, 2023)
Détermine si la dernière valeur d'une série correspond au plus haut ou au plus bas niveau observé depuis un certain nombre de périodes.
plushautniveau( df, temps = "croissant", voc_haut, voc_bas, vart, vary, nbperiode = 3, lang = get_serad_language() )plushautniveau( df, temps = "croissant", voc_haut, voc_bas, vart, vary, nbperiode = 3, lang = get_serad_language() )
df |
Data frame en entrée. |
temps |
Ordre temporel : "croissant" (par défaut) si les valeurs vont du passé vers le présent, "décroissant" sinon. |
voc_haut |
Formulation utilisée pour un plus haut niveau. Si omis, dépend de la langue. |
voc_bas |
Formulation utilisée pour un plus bas niveau. Si omis, dépend de la langue. |
vart |
Variable de temps du data frame. Par défaut : première colonne. |
vary |
Variable numérique du data frame. Par défaut : seconde colonne. |
nbperiode |
Nombre minimal de périodes depuis lesquelles le niveau doit être un extremum pour retourner une phrase (par défaut : 3). |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères indiquant le plus haut ou le plus bas niveau depuis une date donnée. Retourne une chaîne vide si rien de notable.
col0 <- c("Y1T1", "Y1T2", "Y1trim3", "Y1T4", "Y2T1", "Y2-T2") col1 <- c(12, 11, 7, 6, 9, 10) col2 <- c(12, 11, 7, 6, 9, 14) col3 <- c(12, 11, 3, 6, 9, 4) col4 <- c(12, 11, 7, 6, 9, 4) col5 <- c(12, 11, 7, 3, 9, 4) df1 <- data.frame(col0, col1, col2, col3, col4, col5) plushautniveau(df1) plushautniveau(df1, nbperiode = 5) plushautniveau(df1, vary = "col2") plushautniveau(df1, vary = "col3") plushautniveau(df1, vary = "col4")col0 <- c("Y1T1", "Y1T2", "Y1trim3", "Y1T4", "Y2T1", "Y2-T2") col1 <- c(12, 11, 7, 6, 9, 10) col2 <- c(12, 11, 7, 6, 9, 14) col3 <- c(12, 11, 3, 6, 9, 4) col4 <- c(12, 11, 7, 6, 9, 4) col5 <- c(12, 11, 7, 3, 9, 4) df1 <- data.frame(col0, col1, col2, col3, col4, col5) plushautniveau(df1) plushautniveau(df1, nbperiode = 5) plushautniveau(df1, vary = "col2") plushautniveau(df1, vary = "col3") plushautniveau(df1, vary = "col4")
Retourne la formulation du mois situé à k périodes
avant le mois indiqué.
prevMois( mois, annee, type = c("Annee", "autres"), majuscule = FALSE, k = 1, lang = get_serad_language() )prevMois( mois, annee, type = c("Annee", "autres"), majuscule = FALSE, k = 1, lang = get_serad_language() )
mois |
Mois sous forme numérique : 1 à 12. |
annee |
Année sur 4 chiffres. |
type |
"Annee" (par défaut) ou "autres". |
majuscule |
Indicateur logique : TRUE pour une majuscule initiale, FALSE sinon. |
k |
Décalage en nombre de mois. Par défaut : 1 (mois précédent). |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères correspondant au mois précédent.
prevMois(1, 2023) prevMois(12, 2023, k = 2)prevMois(1, 2023) prevMois(12, 2023, k = 2)
Retourne la formulation du trimestre situé à k périodes
avant le trimestre indiqué.
prevTrim( trim, annee, type = c("lettres", "chiffres"), majuscule = FALSE, exposant = TRUE, k = 1, lang = get_serad_language() )prevTrim( trim, annee, type = c("lettres", "chiffres"), majuscule = FALSE, exposant = TRUE, k = 1, lang = get_serad_language() )
trim |
Trimestre sous forme numérique : 1, 2, 3 ou 4. |
annee |
Année sur 4 chiffres. |
type |
"lettres" (par défaut) ou "chiffres". |
majuscule |
Indicateur logique : TRUE pour une majuscule initiale, FALSE sinon. |
exposant |
Indicateur logique : TRUE pour afficher les exposants Markdown (ex. "1^er^"), FALSE pour afficher "1er". |
k |
Décalage en nombre de trimestres. Par défaut : 1 (trimestre précédent). |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères correspondant au trimestre précédent.
prevTrim(1, 2023) prevTrim(1, 2023, type = "chiffres", exposant = FALSE)prevTrim(1, 2023) prevTrim(1, 2023, type = "chiffres", exposant = FALSE)
Retourne une formulation littéraire du mois, avec ou sans année.
quelMois( mois, annee, type = c("Annee", "autres"), majuscule = FALSE, lang = get_serad_language() )quelMois( mois, annee, type = c("Annee", "autres"), majuscule = FALSE, lang = get_serad_language() )
mois |
Mois sous forme numérique : 1 à 12. |
annee |
Année sur 4 chiffres. |
type |
"Annee" (par défaut, ex. "janvier 2023") ou "autres" (ex. "janvier"). |
majuscule |
Indicateur logique : TRUE pour une majuscule initiale (ex. "Janvier"), FALSE sinon. |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères correspondant au mois, avec ou sans année.
quelMois(3, 2023) quelMois(3, 2023, majuscule = TRUE) quelMois(3, 2023, type = "autres")quelMois(3, 2023) quelMois(3, 2023, majuscule = TRUE) quelMois(3, 2023, type = "autres")
Retourne une formulation littéraire du trimestre pour une année donnée.
quelTrim( trim, annee, type = c("lettres", "chiffres"), majuscule = FALSE, exposant = TRUE, mois = NULL, lang = get_serad_language() )quelTrim( trim, annee, type = c("lettres", "chiffres"), majuscule = FALSE, exposant = TRUE, mois = NULL, lang = get_serad_language() )
trim |
Trimestre sous forme numérique : 1, 2, 3 ou 4. |
annee |
Année sur 4 chiffres. |
type |
"lettres" (par défaut) ou "chiffres". |
majuscule |
Indicateur logique : TRUE pour une majuscule initiale (ex. "Premier"), FALSE sinon. |
exposant |
Indicateur logique : TRUE pour afficher les exposants Markdown (ex. "1^er^"), FALSE pour afficher "1er". |
mois |
Si renseigné (entier entre 1 et 12),
remplace |
lang |
Langue de sortie : "fr" ou "en". |
Une chaîne de caractères du type "troisième trimestre 2023" ou "3^e^ trimestre 2023".
quelTrim(3, 2023) quelTrim(3, 2023, majuscule = TRUE) quelTrim(3, 2023, type = "chiffres") quelTrim(1, 2023, type = "chiffres") quelTrim(999, 2023, type = "chiffres", mois = 8) quelTrim(3, 2023, type = "chiffres", exposant = FALSE)quelTrim(3, 2023) quelTrim(3, 2023, majuscule = TRUE) quelTrim(3, 2023, type = "chiffres") quelTrim(1, 2023, type = "chiffres") quelTrim(999, 2023, type = "chiffres", mois = 8) quelTrim(3, 2023, type = "chiffres", exposant = FALSE)
Retourne la forme singulière ou plurielle selon la valeur absolue du nombre.
s(a, sing = "", plur = "s", seuil = 2)s(a, sing = "", plur = "s", seuil = 2)
a |
Valeur numérique. |
sing |
Forme au singulier. Par défaut : chaîne vide. |
plur |
Forme au pluriel. Par défaut : "s". |
seuil |
Seuil à partir duquel la forme plurielle est utilisée (par défaut : 2). |
Une chaîne de caractères correspondant à la forme correctement accordée. NA si l'entrée est NA.
https://www.dictionnaire-academie.fr/article/QDL057
serad::s(-7.5) serad::s(-2) serad::s(1.4, "chat parle", "chats parlent") serad::s(-2, "chat parle", "chats parlent") serad::s(1.97) serad::s(arrondi_tot(1.97)) serad::s(1.97, seuil = 1.95)serad::s(-7.5) serad::s(-2) serad::s(1.4, "chat parle", "chats parlent") serad::s(-2, "chat parle", "chats parlent") serad::s(1.97) serad::s(arrondi_tot(1.97)) serad::s(1.97, seuil = 1.95)
Modifie la langue utilisée par {serad} et réinitialise les règles de rédaction associées.
set_serad_language(lang = c("fr", "en"))set_serad_language(lang = c("fr", "en"))
lang |
Langue de sortie : "fr" ou "en". |
NULL invisiblement.
Extrait le numéro du mois (1 à 12) à partir d'une chaîne de caractères contenant un mois en format abrégé ou littéraire.
whichMois(mois)whichMois(mois)
mois |
Chaîne de caractères contenant un mois (ex. "En juil. 98"). |
Un entier entre 1 et 12 si un mois est détecté, 0 sinon. NA si l'entrée est NA.
whichMois("En juil. 98")whichMois("En juil. 98")