Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposition de fiche "Produire des tableaux de diffusion" #454

Open
JulienBlasco opened this issue Nov 15, 2022 · 8 comments
Open

Proposition de fiche "Produire des tableaux de diffusion" #454

JulienBlasco opened this issue Nov 15, 2022 · 8 comments

Comments

@JulienBlasco
Copy link
Contributor

Bonjour à toutes et à tous,

Il me semble qu'il serait utile d'ajouter une section au chapitre "Produire des sorties avec R" centrée sur les tableaux de diffusion. Par là, on entend les tableaux issus de traitements statistiques destinés à la lecture par l'humain (sauf si vous avez une meilleure définition). A la différence des tables manipulées dans des traitements statistiques, ils ne respectent pas forcément la règle "une ligne = une observation" et "une colonne = une variable", ils contiennent des éléments de formatage, des titres/notes etc. Leurs usages sont multiples : notes internes, publications, présentations, sites web, etc.

Pour ouvrir la discussion, j'ai déjà réfléchi à une ébauche de plan (à discuter) :

  1. Qu'est-ce qu'un tableau de diffusion
    1. Usages et types de sorties possibles
    2. Différences avec un tableau de données "tidy"
  2. Passer d'un tableau "tidy" à un tableau de diffusion
    1. Formatage des tableaux
      1. Label des variables et des modalités
      2. Formatage des nombres
      3. Titres et notes de lecture
      4. En-têtes de lignes et de colonnes
      5. Fusionner des cellules
    2. Synthétiser des résultats
      1. Ajouter des lignes ou des colonnes "Ensemble"
      2. Stats "par groupes"
      3. Régressions logistiques
  3. Diffuser son tableau
    1. Intégration à R Markdown
    2. Export en Excel/ODS
    3. Autres exports

Si l'idée vous paraît bonne, alors je veux bien participer à la rédaction d'une telle fiche. Je serais cependant ravi de travailler avec quelqu'un qui a déjà réfléchi au sujet et/ou a déjà contribué à la rédaction d'utilitR.

Il reste la question du package : si je comprends bien la ligne éditoriale d'utilitR, il s'agirait de choisir un package et de s'y tenir tout au long de la fiche. Là-dessus, j'ouvre le débat et m'en remets à votre expérience et à vos recommandations.

@ddotta
Copy link
Contributor

ddotta commented Nov 16, 2022

Super idée !

De ce que j'ai pu expérimenter de mon côté, il y a 2 packages qui se détachent en ce qui concerne les tableaux de diffusion :
{gt} et {flextable}

Si on met en application les règles de décision d'utilitr pour choisir un package et avoir quelques indices :

gt flextable
Mainteneurs Posit et notamment Richard Iannone ardata et notamment David Gohel
Téléchargements 45k par mois 44k par mois
Etoiles 1,6k 437
Issues et PR 716 issues et 374 PR 424 issues et 39 PR

Autre point sur {gt}, c'est l'existence d'autres packages comme par exemple {gtExtras} qui ajoutent d'autres fonctionnalités.
Une petite remarque aussi, aucun de ces 2 packages ne propose une exportation native en Excel/ODS (cf.3.ii du plan de Julien) ce qui peut être assez demandé par les utilisateurs.

Peut-être que la fiche peut présenter les 2 (même si cela demande plus de travail) ?
Et il y a bien sûr d'autres packages à considérer, par exemple {kableextra}
Ce n'est qu'un début de discussion...

@JulienBlasco
Copy link
Contributor Author

Merci pour ces infos Damien !

Les deux sont très intéressants. On peut également ajouter huxtable, qui est un peu plus confidentiel, mais a l'avantage de proposer un export natif en Excel.

La production d'excel/ods me semble indispensable, ne serait-ce que pour les chargés d'études à l'Insee ou en SSM qui doivent produire ce type de sortie pour leurs publications. Mais peut-être que ça demande une solution technique différente des autres tableaux de diffusion ?

@ddotta
Copy link
Contributor

ddotta commented Nov 18, 2022

Je suis d'accord pour dire que la production d'excel/ODS reste très demandé dans la statistique publique....
Merci pour huxtable que je ne connaissais pas. En tout cas, les auteurs du package valident déjà notre choix initial de packages pour les tableaux de diffusion https://hughjonesd.github.io/huxtable/design-principles.html#comparing-huxtable-with-other-packages

@oliviermeslin
Copy link
Contributor

Merci beaucoup @JulienBlasco pour la suggestion très détaillée, et @ddotta pour les réactions. Cette fiche couvrirait un vrai manque dans utilitR, et je suis d'accord que la recommandation d'utilitR doit impérativement couvrir ODS/Excel.

Ceci dit, la bonne recommandation ne me semble pas claire à ce stade. Voici quelques réflexions issues de ma pratique de production de tableaux LaTeX, je serais content de connaître votre avis:

  • Il faut peut-être distinguer trois étapes de production des tableaux: 1/ la construction du tableau de résultats (les bonnes colonnes et les bonnes lignes, éventuellement avec des totaux et sous-totaux), 2/ la mise en forme du tableau (ajouter des lignes de texte dans le tableau, noms de colonnes, header/footer, gras/souligné/couleur), et 3/ l'exportation vers un autre format. Exemple: lorsque je fais des tableaux LaTeX, je fais 1/ en data.table (faisable aussi en arrow ou dplyr), et 2/ et 3/ avec scales, knitr et kableExtra.
  • En regardant la CRAN Task View sur la recherche reproductible (section Office), je constate qu'il n'y a apparemment que deux packages sérieux qui feraient les trois tâches: flextable et huxtable. Or, chacun de ces deux packages est développé par un seul contributeur => il y a un risque non négligeable que ces packages se retrouvent en déshérence. Est-ce rédhibitoire selon vous?
  • On peut envisager une autre solution: construire le tableau de résultat en dplyr ou data.table (tâche 1), puis l'exporter en Excel en customisant le fichier de sortie avec openxlsx (tâches 2 et 3). Il me semble que ce package est assez puissant pour modifier des Excel, et il a l'avantage d'être maintenu par plusieurs personnes. Est-ce que cela vous semble une piste à tester?
  • Remarque mineure: pensez-vous qu'il soit important d'ajouter LaTeX aux formats de sortie?

@JulienBlasco
Copy link
Contributor Author

JulienBlasco commented Dec 8, 2022 via email

@ddotta
Copy link
Contributor

ddotta commented Dec 14, 2022

Salut,

  • Je confirme l'intérêt pour le Latex @oliviermeslin mais il me semble aussi que cela peut être traité dans un second temps ;
  • Effectivement la maintenance de huxtable et flextable pourraient être plus fragiles que gt compte-tenu du nombre de contributeurs et je suis d'accord avec @JulienBlasco que la recommandation devra porter sur un ensemble de packages pour cette fiche. Et on ne peut pas (à mon avis) ne pas y citer gt 🙂
  • Pour Excel, je vous proposerais bien une proposition pour une solution maison. J'en utilise une dans mon équipe mais il y a pas mal de boulot pour l'adapter pour la rendre plus générique. Je le ferai à temps perdu après les fêtes dans ce repo.

@JulienBlasco
Copy link
Contributor Author

JulienBlasco commented Dec 14, 2022 via email

@maellefontaine2
Copy link

Merci @JulienBlasco pour le lien sur cette issue car effectivement, si on fait une fiche sur les stats desc, il faut qu'on se coordonne sur où finit l'une et où commence l'autre ! Il me semble quand même qu'il y a bien lieu d'en faire deux différentes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants