Skip to contents

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 = TRUE est 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) et pal. Cette modification engendre une différence de comportement par rapport aux versions antérieures de fonctionr : la couleur unie définie dans pal ne fonctionnera plus et la couleur par défaut sera appliquée.

    • Dans distrib_continuous() et distrib_group_continuous(), il y a plusieurs changements dans les arguments : pal devient col_density ; pal_moustache devient col_moustache ; color devient col_border. La raison de ce changement est lié à un impératif de cohérence entre les fonctions : l’argument pal est 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_font pour 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 ggtext a 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 valeur NULL pour 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

fonctionr 0.3.21

Date : 2026-01-05

fonctionr 0.3.20

Date : 2025-12-26

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

fonctionr 0.3.17

Date : 2025-06-28

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 lang devient NULL par défaut pour les fonctions qui ont un argument lang.

fonctionr 0.3.15

Date : 2025-04-29

  • Ajout de la position flip dans many_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 argument reorder (TRUE pour réordonner les groupes selon le premier level de la variable quali_var) et un argument show_n (TRUE pour 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’argument linewidth_ci pour régler l’épaisseur des IC.

fonctionr 0.3.12

Date : 2025-02-16

  • La fonction graphique theme_fonctionr() dispose maintenant de l’argument grid.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 ggtext est 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’argument scale vaut 100.

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 lang qui 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() et prop_group() avec les group.fill activés.

  • Ajout du calcul de totaux pour distrib_group_d() et many_val_group().

  • Ajout d’un theme “IWEPS” pour les graphiques.

  • L’argument show_lab devient show_labs (avec un s) pour toutes les fonctions.

  • L’argument de couleur fill devient pal pour 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 (argument group.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’option position = "bottom" change également la position de la surface minimale affichée lorsque compare = 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 (argument group.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() et distrib_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 Gothic et Amatic.

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

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

fonctionr 0.2.11

Date : 2024-03-17

  • Réécriture du code de toutes les fonctions (sauf esth_graph() et pivot_longer_survey()) : simplification + structuration.
  • Nouvelle logique des na.rm finalisée pour toutes les fonctions (différenciation de na.rm.group et na.rm.facet, introduction de na.rm.var pour distrib_group_d() et distrib_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

fonctionr 0.2.9

Date : 2024-03-05

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 englobe many_prop(). Il y a désormais la possibilité de calculer des moyennes et des médianes avec les alias many_mean() et many_median().
  • Plus de parcimonie pour l’import des packages extérieurs dans le namespace.
  • Changement de nom des arguments : na.var devient na.prop et facet.var devient facet.
  • 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 dans prop_group() : le test statistique est désormais bypassé si les conditions ne sont pas remplies et ne stoppe donc plus prop_group() en cas d’erreur.

fonctionr 0.2.4

Date : 2024-02-17

fonctionr 0.2.3

Date : 2024-02-17

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() avec na.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 les NA au dénominateur avec l’argument na.var = "include". Dans ce cas, l’expression prop_exp peut contenir la fonction is.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() utilise type pour désigner la fonction dans laquelle on se trouve, vs fonction pour export_excel() et fonctionr_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 sur fonctionr_filter()

  • (Joël) Ajouter que pour supprimer xlab ou ylab, on puisse entrer NA et 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 fonction fonctionr_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 de substitute().

  • 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.).

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 NA a é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 que Selecting 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 NA est transfomé en level du facteur de groupe. De ce fait, il n’apparaît pas toujours en dernier, notamment lorsque reorder = 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 = des left_join() dans le script, et donc le nommage des colonnes.

  • Ajouter la possibilité de facets.

  • La colonne central dans l’objet dens produit n’a pas de valeur y_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.

prop_group

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 pour make_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 NA apparait en premier lorsque position = "flip" => Corriger, il doit apparaître en dernier.
  • Améliorer l’alignement des effectifs avec show_n = T lorsque position == "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() et many_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 _low et _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 dec et éventuellement scales.

esth_graph

  • Changer le nom.

  • Ajouter le check pour l’argument pvalue.

  • Régler le pb si multiples NA + voir si un pb se pose avec multiples totaux.
    => BUG : la condition stoppe si multiples NAs avec facettes même si 1 seul NA par facette (condition trop stricte => ça doit passer)

Améliorations

En général

  • Réécrire le code du test stat pour avoir la formule originale => possible avec eval(), voir code de central_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 de rlang.
  • Revoir la solution apportée dans theme_fonctionr() au bug de compatibilité entre ggtext et ggplot 4.0 lorsque ggtext aura été mis à jour. Voir : https://github.com/jgires/fonctionr/commit/0461f452405628d1aaf692a0266f3a281c2b67d6.

distrib_group_d

  • Ajouter les effectifs totaux par groupe ? (dans le nom du groupe ?)

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://stats.stackexchange.com/questions/411026/why-it-is-important-to-make-survey-design-object-svydesign-function-in-r-with-i

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 !

Fonctions à créer

Bivarié ou 3 variables+

  • Superposition de 2 statistiques (bar + lines) avec échelles différentes.

  • Tableau croisé avec résidus ou couleur par proportion (proportions par c, l, ou total)