fonctionr 0.5.0
Date : 2026-03-10
Changement dans la manière de filtrer les données, permettant un gain de rapidité de ~30% dans la plupart des fonctions lors de l’usage de poids répliqués.
La fonction
many_val_group()peut désormais être parallélisée, permettant un gain de rapidité de ~30% avec des poids répliqués lorsque les calculs sont nombreux. Le gain est plus petit - voire négatif - lorsque les calculs sont peu importants. C’est la raison pour laquelle l’option est désactivée par défaut si l’estimation de la variance d’échantillonnage n’est pas réalisée à l’aide de poids répliqués.Changement des palettes par défaut des différentes fonctions, car MetBrewer et PrettyCols sont désormais définis comme des packages optionnels (ils ne sont pas automatiquement installés avec fonctionr, sauf si
dependencies = TRUEest indiqué lors de l’installation).
fonctionr 0.4.0
Date : 2026-01-27
Ajout de la possibilité de définir des options globales grâce à la fonction
fonctionr_options().-
Nouveaux arguments pour les palettes et les couleurs.
Séparation de la couleur unie et de la palette dans les arguments
col(nouveau) etpal. Cette modification engendre une différence de comportement par rapport aux versions antérieures defonctionr: la couleur unie définie danspalne fonctionnera plus et la couleur par défaut sera appliquée.Dans
distrib_continuous()etdistrib_group_continuous(), il y a plusieurs changements dans les arguments :paldevientcol_density;pal_moustachedevientcol_moustache;colordevientcol_border. La raison de ce changement est lié à un impératif de cohérence entre les fonctions : l’argumentpalest désormais réservé aux palettes de type qualitatif. Néanmoins pour des raisons de compatibilité, les anciens arguments demeurent dans la fonction, mais sont inactifs.
Il n’est plus possible d’introduire des palettes issues du package MoMAColors, celui-ci n’étant pas sur CRAN.
Introduction de l’argument
coef_fontpour multiplier la taille de toutes les polices de caractère dans les graphiques de toutes les fonctions.Un grand nombre de caractères spéciaux sont désormais utilisables dans le noms des groupes (du fait que
ggtexta besoin d’un formatage en codes HTML, cela provoquait auparavant des bugs dans les graphiques).Les palettes de toutes les fonctions ont désormais la même direction (cohérence entre toutes les fonctions).
Le thème par défaut de
theme_fonctionr()devient"fonctionr". La valeurNULLpour le theme crée désormais un design très proche du thème par défaut de ggplot (mais en gérant la taille de la police et le formatage permis par ggtext).Mise à jour des polices de caractère contenues dans
fonctionr: la police Montserrat inclue dans le package peut désormais être formatée en italique et gras ; les polices ‘Amatic’ et ‘Helvetica Neue’ sont supprimées (du fait de la limite de 5Mo de CRAN).
fonctionr 0.3.22
Date : 2026-01-10
- Simplification du code de
esth_graph(),many_val_group(),distrib_group_discrete(),central_group()pour l’utilisation deggtext. - Simplification du code de création des palettes avec la fonction
interne
create_palette().
fonctionr 0.3.21
Date : 2026-01-05
- Simplification du code de
prop_group()pour formater le label du total en gras avec le packageggtext(inspiration : https://github.com/wilkelab/ggtext/issues/121#issuecomment-3637732111). Mise en italique du groupe NA par la même occasion. La fonction internerelab_ggtext()a été créée pour opérer cette simplification. Les autres fonctions doivent encore être modifiées dans le même sens.
fonctionr 0.3.20
Date : 2025-12-26
- Correction temporaire d’un bug graphique provoqué par le passage à
ggplot 4.0, qui impliquait que le total sur les graphiques (en gras) soit indiqué ** total ** (avec des astérisques). C’est le packageggtextqui est utilisé pour mettre en gras le total dans les graphiques. Or,ggtextn’est pas complètement compatible avec le nouveau fonctionnement deggplot 4.0: l’héritage des propriétés ne se fait pas entre éléments S3 et S7 (voir : ggtext and parsing html with latest version of ggplot · Issue #6752 · tidyverse/ggplot2). Une solution temporaire a été ajoutée (à corriger lorsqueggtextsera mis à jour : Update theme elements to S7 class system · Issue #128 · wilkelab/ggtext).
fonctionr 0.3.19
Date : 2025-11-03
- Ajout de nouvelles palettes dérivées des palettes continues : ce sont les mêmes avec plus de contraste, ce qui est plus adapté pour réaliser des cartes.
fonctionr 0.3.18
Date : 2025-10-13
- Correction de l’ordre des couleurs pour la légende avec le
group.fillactivé pourprop_group()etcentral_group().
fonctionr 0.3.16
Date : 2025-05-17
- Le signe des décimales change désormais en fonction de la langue. La
valeur de l’argument
langdevientNULLpar défaut pour les fonctions qui ont un argumentlang.
fonctionr 0.3.15
Date : 2025-04-29
- Ajout de la position
flipdansmany_val_group()pour intervertir les groupes et les indicateurs choisis sur le graphique.
fonctionr 0.3.14
Date : 2025-03-27
- La fonction
distrib_group_discrete()possède désormais un argumentreorder(TRUEpour réordonner les groupes selon le premier level de la variablequali_var) et un argumentshow_n(TRUEpour afficher les effectifs de l’échantillon en dessous du pourcentage).
fonctionr 0.3.13
Date : 2025-03-17
- La fonction
make_surface()dispose de l’argumentlinewidth_cipour régler l’épaisseur des IC.
fonctionr 0.3.12
Date : 2025-02-16
- La fonction graphique
theme_fonctionr()dispose maintenant de l’argumentgrid.lines, pour spécifier les lignes de la grilles à afficher ("x","y"ou"both").
fonctionr 0.3.11
Date : 2025-02-11
- Modification des fonctions qui calculent des totaux, pour afficher
en gras le label ainsi que les indicateurs du total.
Pour ce faire, le package
ggtextest désormais utilisé ; il y a donc une dépendance en plus. - La fonction
distrib_group_discrete()affiche désormais l’unité%sur l’axe des x par défaut, c’est-à-dire lorsque l’unité est définie comme un espace vide ("") et que l’argumentscalevaut100.
fonctionr 0.3.10
Date : 2024-12-17
Ajout de palettes spécifiques pour l’Observatoire de la Santé et du Social.
Export de la fonction
official_pal().Ajout de la possibilité de désaturer, éclaircir ou foncer les palettes de couleur.
fonctionr 0.3.9
Date : 2024-09-15
Ajout de l’argument
langqui permet l’affichage des indications sur les graphiques en trois langues : français, néérlandais, anglais.Ajout d’exemples dans la documentation des fonctions.
fonctionr 0.3.8
Date : 2024-09-04
Ajout du calcul de totaux pour
central_group()etprop_group()avec lesgroup.fillactivés.Ajout du calcul de totaux pour
distrib_group_d()etmany_val_group().Ajout d’un
theme“IWEPS” pour les graphiques.L’argument
show_labdevientshow_labs(avec un s) pour toutes les fonctions.L’argument de couleur
filldevientpalpour toutes les fonctions (par cohérence).
fonctionr 0.3.7
Date : 2024-08-04
Modifications substancielles pour
central_group(): ajout de la possibilité de faire des sous-groupes (argumentgroup.fill) par groupe.Ajout de la possibilité dans
central_group()de ne pas calculer le total.
fonctionr 0.3.6
Date : 2024-07-20
Ajout de la possibilité dans
prop_group()de ne pas calculer le total.Dans
make_surface(), l’optionposition = "bottom"change également la position de la surface minimale affichée lorsquecompare = T(suggestion de Robin).Optimisation du code (très légère augmentation de la vitesse).
fonctionr 0.3.5
Date : 2024-07-07
Modifications substancielles pour
prop_group(): ajout de la possibilité de faire des sous-groupes (argumentgroup.fill) par groupe.La fonction
make_surface()est terminée : documentation et checks.Modification du code relatif aux palettes de couleurs pour compatibilité avec la nouvelle version de
PrettyCols(changement de nom d’un argument).Corrections mineures à divers endroits du code. Le check n’indique désormais plus d’erreur, warning ou note.
fonctionr 0.3.4
Date : 2024-06-29
Ajout de l’export excel pour
distrib_continuous()etdistrib_group_continuous(). De légères modifications des outputs de ces deux fonctions ont été apportées pour rendre l’export propre.Ajout de trois polices d’écriture dans
fonctionr:Helvetica Neue,League GothicetAmatic.
fonctionr 0.3.3
Date : 2024-06-06
- Amélioration de l’affichage des aires de densité dans
distrib_group_continuous()lorsque la palette est d’une seule couleur (on ne voit plus les limites des quantiles). - Ajout des facets dans
make_surface(). - Mise à la ligne automatique de caption tous les 100 caractères dans toutes les fonctions.
fonctionr 0.3.2
Date : 2024-05-27
- Correction d’un bug sur le reorder des valeurs dans
distrib_group_continuous().
fonctionr 0.3.1
Date : 2024-05-25
- Correction d’un bug dans la plupart des fonctions sur le reorder des
valeurs par la médiane des résultats utilisé pour les facets (la
fonction est désormais écrite avec des guillemets :
FUN = "median". Sans cela, il y avait dans certains cas particuliers une erreur).
fonctionr 0.3.0
Date : 2024-04-26
La documentation a été complétée pour que le package puisse être utilisé par des personnes tierces. Le package commence à être diffusable.
Le bug avec la ligne du geom_line qui est coupée pour
distrib_group_continuous()est réglé.bug d’ordonnancement des facteurs réglé dans
esth_graph().
fonctionr 0.2.13
Date : 2024-04-20
Création de
make_surface()comme fonction indépendante utilisable sur n’importe quel tableau de résultats.Ajout de la possibilité d’afficher le résultat d’un test statistique dans
esth_graph().
fonctionr 0.2.12
Date : 2024-04-04
Création de
distrib_continuous()etdistrib_group_continuous().Modification du thème
theme_fonctionr()pour qu’il soit plus adapté aux nouvelles fonctions.
fonctionr 0.2.11
Date : 2024-03-17
- Réécriture du code de toutes les fonctions (sauf
esth_graph()etpivot_longer_survey()) : simplification + structuration. - Nouvelle logique des na.rm finalisée pour toutes les fonctions
(différenciation de
na.rm.groupetna.rm.facet, introduction dena.rm.varpourdistrib_group_d()etdistrib_d()). - Ajout de checks pour vérifier si la couleur/palette est valide : couleur/palette par défaut si la couleur introduite est invalide.
- Création d’une fonction interne de création de palettes, permettant de produire les palettes de différentes institutions (pour l’instant Vivalis et Perspective, pour tester).
fonctionr 0.2.10
Date : 2024-03-15
- Ajout des argument
na.rm.facetdansprop_group()etcentral_group(). - Possibilité de mettre une couleur unie pour
many_val(). - Création de l’argument
na.varspourmany_val()etmany_val_group().
fonctionr 0.2.8
Date : 2024-03-03
- Modification des checks pour voir si les variables indispensables
existent bien dans
data: simplification du code et message plus clair et utile pour l’utilisateur.
fonctionr 0.2.7
Date : 2024-03-01
- Ajout de
many_val()comme fonction plus générale qui englobemany_prop(). Il y a désormais la possibilité de calculer des moyennes et des médianes avec les aliasmany_mean()etmany_median(). - Plus de parcimonie pour l’import des packages extérieurs dans le namespace.
- Changement de nom des arguments :
na.vardevientna.propetfacet.vardevientfacet. - Début de simplification du code dans un but de facilité pour la maintenance et les modifs futures.
fonctionr 0.2.6
Date : 2024-02-22
- Ajout d’un check de l’expression dans
prop_group(), évitant de produire des résultats incohérents.
fonctionr 0.2.5
Date : 2024-02-19
- Implémentation du
trycatch()sur le test statistique dansprop_group(): le test statistique est désormais bypassé si les conditions ne sont pas remplies et ne stoppe donc plusprop_group()en cas d’erreur.
fonctionr 0.2.4
Date : 2024-02-17
- Implémentation de checks pour vérifier que les variables de
many_prop_group()soient bien binaires, et pour éviter les variables à une modalité pourquali_vardansdistrib_group_discrete(). - Correction d’un bug dans
esth_graph().
fonctionr 0.2.3
Date : 2024-02-17
- Implémentation de l’export excel pour
many_prop()etmany_val_group().
fonctionr 0.2.2
Date : 2024-02-14
Implémentation du test statistique pour
distrib_discrete().Correction d’un bug découvert à cette occasion, qui empêchait de faire fonctionner
distrib_discrete()avecna.rm.group = FALSE.
fonctionr 0.2.1
Date : 2024-02-14
- Amélioration des fonctions internes de vérification de la validité des arguments. Celles-ci renvoient désormais un message plus clair pour l’utilisateur.
fonctionr 0.2.0
prop_group(): ajout de la possibilité de calculer des proportions en comptant lesNAau dénominateur avec l’argumentna.var = "include". Dans ce cas, l’expressionprop_exppeut contenir la fonctionis.na()pour calculer la proportion de valeurs manquantes.many_val_group(): changement de l’ordre des labels pour que l’ordre des couleurs corresponde à l’ordre sur le graphique.Ajout d’exemples dans la documentation à partir des données SILC inclues dans le package laeken.
Correction de bugs mineurs.
To do list
Prioritaire (nécessités ou bugs)
En général
(Joël) Réécrire
export_excel()=> la fonction est un peu bordélique et le nom des arguments pas clairs.(Joël) Harmoniser les fonctions internes
=>fonctionr_ggplot_labs()utilisetypepour désigner la fonction dans laquelle on se trouve, vsfonctionpourexport_excel()etfonctionr_filter(): future source de confusion pour maintenir le package.
=> Certaines conditions sont implicites, d’autres explicites -> faire le même travail que François a fait surfonctionr_filter()(Joël) Ajouter que pour supprimer xlab ou ylab, on puisse entrer
NAet pas seulement ““.
=> Une fonction unique de labellisation des axes x et y a déjà été crée pour faciliter cet ajout.(François) Ajouter toutes les options dans
fonctionr_options(), sauf les arguments avec données ou variables.
=> Ajouter parallel.(François) Revoir la doc de chaque fonction et le manuel par rapport aux changements. Voir ici pour savoir les différentes options possibles dans la doc : https://r-pkgs.org/man.html.
=> Documenter la fonctionfonctionr_options()(+ explication dans le manuel).
=> Changer la doc pour les palettes par défaut.(François) Créer un tableau joli en output (avec
flextable).BUG : si une variable de design == le nom d’un objet externe, ça fonctionne => APPROFONDIR ET REGLER CA ?
Rendre l’usage non interactif (= la programmation via d’autres fonctions) possible => gros travail, usage de
rlangà la place desubstitute().Mettre des conditions pour réaliser les tests (n min, distribution, variances égales…).
-
Ajouter des checks pour les inputs :
- Pas mettre les mêmes colonnes dans les différents arguments ?
(
group,var_distrib,facet_var, etc.).
- Pas mettre les mêmes colonnes dans les différents arguments ?
(
distrib_c
- (Joël) Sélectionner uniquement les variables nécessaires pour minimiser la RAM utilisée (désactivé car bug ?)
- Ajouter le test stat univarié avec comme H0 mu dans la population.
Apparemment la fonction n’est pas pré-programmée dans
survey, il faut la faire soi-même. - Ajouter la possibilité de facets.
distrib_group_c
(Joël) Sélectionner uniquement les variables nécessaires pour minimiser la RAM utilisée (désactivé car bug ?)
(Joël) Introduire la mise en forme avec ggtext => plus difficile ici car le
NAa été tranformé en level. Réfléchir à la meilleure solution et revoir éventuellement la fonction.(François + Joël) Ajouter hauteur des densités proportionnelle aux effectifs pondérés.
Il y a un warning de la fonction
density()qui dit queSelecting bandwidth not using 'weights'. La doc de density() dit : “automatic bandwidth selection will not take the weights into account and hence may be suboptimal.”
=> Voir si c’est un problème ?Le groupe
NAest transfomé en level du facteur de groupe. De ce fait, il n’apparaît pas toujours en dernier, notamment lorsquereorder = T. Régler ça (pas cohérent avec les autres fonctions).Faire en sorte que le nom du groupe soit toujours le même dans les sorties de la liste (pour le moment, parfois “group”, parfois le nom de la variable) => implique de changer l’argument
by =desleft_join()dans le script, et donc le nommage des colonnes.Ajouter la possibilité de facets.
La colonne
centraldans l’objetdensproduit n’a pas de valeury_ridges.Un peu cleaner le script : il y a des étapes inutiles qui pourraient être simplifiées, notamment dans la création des valeurs centrales.
Ajouter la possibilité d’un total.
central_group
- Bypasser l’erreur du test stat avec
tryCatch().
distrib_group_d
- (François) Ajouter hauteur des barres proportionnelle aux effectifs pondérés.
- Implémenter un test stat lorsqu’il y a des facets => via
modélisation loglinéaire, mais j’ai un peu de mal à comprendre les
erreurs de
survey(erreurs fréquentes). - Redondance du code avec total pour le
geom_text()?
many_val
- (Joël) Conditions ajoutées pour définir la priorité de pal
sur col => Voir avec François si c’est OK.
=> C’est idem pourmake_surface(). - Les couleurs des palettes sont attachées à l’indicateur, mais pas à
la position. De ce fait, lorsque
reorder = T, l’ordre des couleurs de la palette n’est pas respecté => changer le comportement ?
many_val_group
- Le
NAapparait en premier lorsqueposition = "flip"=> Corriger, il doit apparaître en dernier. - Améliorer l’alignement des effectifs avec
show_n = Tlorsqueposition == "stack" - Redondance du code avec total pour le
geom_text()? - Les couleurs des palettes sont attachées au groupe, mais pas à la
position. De ce fait, lorsque
reorder = T, l’ordre des couleurs de la palette n’est pas respecté => changer le comportement ? - Fusionner
many_val_group()etmany_val()!
make_surface
Ajouter la détection automatique des IC (possible si les colonnes sont du même nom que la valeur, mais terminant par
_lowet_upp).Ajouter les checks (penser le cas spécifique de
pvalue).Lorsque facet, mieux penser l’alignement entre mêmes modalités ?
Ajouter les arguments
decet éventuellementscales.
Améliorations
En général
- Réécrire le code du test stat pour avoir la formule originale =>
possible avec
eval(), voir code decentral_group(). - Créer une fonction de check des inputs indispensables (car
redondance entre les 4 fonctions)
=> Pour l’instant c’est fait “en dur” : difficultés de créer une fonction du fait de l’usage du tidyverse : il faut sans doute utiliser les fonctions derlang. - Revoir la solution apportée dans
theme_fonctionr()au bug de compatibilité entreggtextetggplot 4.0lorsque ggtext aura été mis à jour. Voir : https://github.com/jgires/fonctionr/commit/0461f452405628d1aaf692a0266f3a281c2b67d6.
Notes
Filtrage
Il semble qu’il faille filtrer après la déclaration du design. Si on ne le fait pas, on considère le design sur l’objet filtré (avec moins de PSU / strates qu’il y en a en réalité), ce qui sous-estime potentiellement la distribution d’échantillonnage. Voir :
https://notstatschat.rbind.io/2021/07/22/subsets-and-subpopulations-in-survey-inference/
=> De ce fait, j’ai inclus une option de filtre (filter_exp) dans les fonctions (qui filtre après la déclaration du design), qui évite de filtrer l’objet avant en dégradant le design. => Vérifier que c’est bien OK !