Changelog

fonctionr 0.5.0

Date : 2026-03-10

fonctionr 0.4.0

Date : 2026-01-27

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

fonctionr 0.3.18

Date : 2025-10-13

fonctionr 0.3.17

Date : 2025-06-28

fonctionr 0.3.16

Date : 2025-05-17

fonctionr 0.3.15

Date : 2025-04-29

fonctionr 0.3.14

Date : 2025-03-27

fonctionr 0.3.13

Date : 2025-03-17

fonctionr 0.3.12

Date : 2025-02-16

fonctionr 0.3.11

Date : 2025-02-11

fonctionr 0.3.10

Date : 2024-12-17

fonctionr 0.3.9

Date : 2024-09-15

fonctionr 0.3.8

Date : 2024-09-04

fonctionr 0.3.7

Date : 2024-08-04

fonctionr 0.3.6

Date : 2024-07-20

fonctionr 0.3.5

Date : 2024-07-07

fonctionr 0.3.4

Date : 2024-06-29

fonctionr 0.3.3

Date : 2024-06-06

fonctionr 0.3.2

Date : 2024-05-27

fonctionr 0.3.1

Date : 2024-05-25

fonctionr 0.3.0

Date : 2024-04-26

fonctionr 0.2.13

Date : 2024-04-20

fonctionr 0.2.12

Date : 2024-04-04

fonctionr 0.2.11

Date : 2024-03-17

fonctionr 0.2.10

Date : 2024-03-15

fonctionr 0.2.9

Date : 2024-03-05

fonctionr 0.2.8

Date : 2024-03-03

fonctionr 0.2.7

Date : 2024-03-01

fonctionr 0.2.6

Date : 2024-02-22

fonctionr 0.2.5

Date : 2024-02-19

fonctionr 0.2.4

Date : 2024-02-17

fonctionr 0.2.3

Date : 2024-02-17

fonctionr 0.2.2

Date : 2024-02-14

fonctionr 0.2.1

Date : 2024-02-14

fonctionr 0.2.0

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)