La version 0.7.2 de flextable est sortie

David Gohel

2022/06/23


La dernière version de ‘flextable’ est sur CRAN depuis quelques jours.

Cette version apporte quelques améliorations majeures :

Il contient également quelques nouvelles fonctionnalités que nous sommes heureux de vous présenter dans ce post.

tabulator

Cette nouvelle fonction prépare des agrégations dans une structure qui peut ensuite être transformée en flextable. L’objectif est de fournir un outil permettant la création de tableaux de reporting où les dimensions sont disposées en lignes et en colonnes et où une ou plusieurs statistiques sont affichées dans le contenu des cellules. La grammaire ‘flextable’ peut être utilisée pour personnaliser le tableau généré avec comamnd flextable::as_flextable().

La fonction va créer un tableau à partir d’agrégations déjà calculées.

Dans un document Word, le résultat serait le suivant. Notez que le numéro de page est indiqué dans la ligne supérieure du tableau. Le code de cet exemple est disponible dans la galerie flextable ici.

tabulator() bénéficie de tous les avantages de la grammaire flextable et peut construire des tableaux complexes composés de graphiques et de texte :

Summarizor pour les résumés de tableaux

La fonction summarizor() est une fonction utilitaire qui prépare un résumé numérique pour chaque variable d’un ensemble de données, éventuellement par groupes. Elle est censée être utilisée pour produire l’argument de tabulator().

Le code de cet exemple est disponible dans la galerie flextable ici.

Impression automatique des flextable

flextable fournit deux nouvelles fonctions dédiées au ‘R Markdown’ qui transforment automatiquement les data.frame et les modèles en flextable.

Les data.frames en flextables

Nous avons ajouté un code que nous utilisions pour nos formations et qui permet d’afficher des data.frame comme des flextables dans des documents ‘R Markdown’. Nous avons essayé d’imiter la sortie de ‘data.table’ et de ‘tibble’ en affichant seulement les premières lignes et le type des colonnes. Pour tirer parti de cette fonctionnalité, nous devons appeler la fonction use_df_printer() et voilà !

use_df_printer()
airquality

Les modèles en flextables

Nous avons implémenté la déclaration des modèles dans flextable, la fonction as_flextable() fait la transformation. Pour le moment, les modèles suivants sont supportés : gam, lm, glm, glmmTMB, glmmadmb, htest, kmeans, pam, lme, gls, merMod, nlme et brmsfit.

Voici un exemple réalisé à partir d’un modèle lme :

library(nlme)
m1 <- lme(distance ~ age, data = Orthodont)
ft <- as_flextable(m1)
ft

Dans un document ‘R Markdown’, il est possible d’automatiser l’impression des modèles en flextable en utilisant la fonction use_model_printer(). Voici un exemple réalisé avec un clustering kmean :

use_model_printer()
kmeans(scale(mtcars[1:7]), 5)

Separation des entêtes

Vous pouvez maintenant séparer les noms de colonnes en plusieurs lignes avec la fonction separate_header(). Cela facilite la création de rapports sur les agrégations calculées avec ‘dplyr’ ou ‘data.table’.

Dans l’exemple suivant, nous agrégeons la célèbre table ‘penguins’.

Sans aucune manipulation intermédiaire, nous créons le “flextable” et restructurons les étiquettes d’en-tête avec la fonction separate_header().

ft <- dat |> 
  flextable() |> 
  separate_header() |> 
  autofit()
ft

Il est ensuite assez facile de le personnaliser et de produire un tableau comme ci-dessous :

Le code de cet exemple est disponible dans la galerie flextable ici.

GitHub Discussions

Faites-nous part de vos problèmes, de vos questions et de vos commentaires dans les “Discussions GitHub”, désormais disponibles sur la page Github de flextable’ : https://github.com/davidgohel/flextable/discussions.


Suivez nous:  -  Sites recommandés: R-bloggers R weekly Twitter #rstats Jobs for R-users