Le package {OFCE}

C’est vraiment pas compliqué

Paul Malliet
Anissa Saumtally
Xavier Timbeau

lundi 13 novembre 2023

Introduction

Introduction

les templates Quarto

theme_ofce

Autres fonctionnalités

Rappel sur les packages R


  • un package est une librairie de fonctions développées par les utilisateurs de R dans le but d’ajouter des fonctionnalités à R
Commandes de base pour les packages
## on les installe avec :

install.packages("NOM_DU_PACKAGE")

## on y fait appel avec

library("NOM_DU_PACKAGE")

## Référence à une fonction d'un package spécifique

NOM_DU_PACKAGE::la_super_fonction()
  • On les trouve :

    • sur le CRAN : il s’agit d’un répertoire « officiel » des packages. Ils répondent à de hautes exigences qui font que ces packages sont fiables

    • sur GitHub : généralement pour les packages en développement

    • via des canaux privés : le package est transmis directement au format .tar.gz ou .zip. Attention à la source, peu de garanties sur leur utilisation

{pak} : une alternative pour les gens « cool » (Xavier)

  • Le package {pak} permet une installation simplifiée des packages à la fois provenant du CRAN et de GitHub (il gère mieux les conflits de version et dépendances)
Code
install.packages("pak")
  • Exemple d’utilisation sur un package du CRAN
Code
pak::pak("tidyverse")
  • Exemples d’utilisation sur un package sur GitHub
Code
pak::pak("nom_utilisateur_git/nom_du_package")

pak::pak("1961Shivani/hypothesis") ## un package random sur GitHub

pak::pak("ThreeME-org/ermeeth") ## le package de l'équipe ThreeME trop stylé

Package OFCE : Pourquoi ?


  • Rassembler les outils développés en interne à l’OFCE :

    • harmoniser les pratiques (templates de documents, chartes graphiques, thèmes graphiques)

    • partager les outils développés par chacun pour faciliter l’utilisation de R

    Gain de temps conséquent ! Promis!

  • Où le trouver ?

  • Rassembler les outils développés en interne à l’OFCE :

    • harmoniser les pratiques (patrons de documents, chartes graphiques, thèmes graphiques)

    • partager les outils développés par chacung pour faciliter l’utilisation de R

Installation du package

  • Vérifier que la version de R est à jour (au moins 4.3.0)
R.version$version.string
[1] "R version 4.3.1 (2023-06-16)"

  • Installer le package {quarto}
pak::pak("quarto")
  • Installer l’extension fontawesome (via le terminal)
quarto add quarto-ext/fontawesome
  • Le package {ofce} est hébergé sur le compte GitHub de l’OFCE

    • …Donc ?
Code
pak::pak("OFCE/ofce")

les templates Quarto

Introduction

les templates Quarto

theme_ofce

Autres fonctionnalités

Résumé des fonctions


Quelque part, sont ajoutés tous les éléments pour le yaml, des bouts de code html, latex pour faire le document. Tout se trouve dans _extensions.


On l’ajoute dans le dossier où se trouve le qmd et on fait référence dans le yaml avec les lignes :


---
format:
   wp-html: default
   wp-pdf: default
---

Les différents types de document

  • working paper : ajoute le dossier _extensions et fait un document exemple que l’on peut modifier
    setup_wp() ou pour le faire dans un dossier spécifique setup_wp("mon_dossier")

  • blog : setup_blog()

  • présentation : setup_pres()

  • pour appliquer à un qmd existant
    setup_quarto() (ne fait que remettre _extensions à jour)

Il est possible de spécifier

  • des paramètres dans le yaml

  • d’ajouter des filtres lua

  • de modifier les codes html, latex, scss

Demo Time !

via GIPHY

theme_ofce

Introduction

les templates Quarto

theme_ofce

Autres fonctionnalités

  • Le package ‹ofce› contient plusieurs fonctions associées à la réalisation d’un graphe sous R en format publiable

  • Les modifications apportées peuvent se distinguer en trois groupes:

    • Les modifications de thème: tout ce qui a a attrait aux différents élements du graphe (axes, fond, légende…)
    • La modification des couleurs utilisées
    • L’ajout d’élements exterieurs supplémentaires hors thème

Faire un graphique sous R

Un graphique basique

# create a dataset
countries <- c(rep("Espagne" , 3) , rep("France" , 3) , rep("Allemagne" , 3) , rep("Italie" , 3) )
condition <- rep(c("food index" , "drink index" , "beauty index") , 4)
value <- abs(rnorm(12 , 0 , 15))
data <- data.frame(countries,condition,value)
 
# Grouped
p <- ggplot(data, aes(fill=condition, y=value, x=countries)) + 
    geom_bar(position="dodge", stat="identity")
p

Faire un graphique sous R

Un graphique basique

Figure 1: Un graphe simple de type geom_bar

Faire un graphique sous R

Ajout du theme ofce

p + theme_ofce()

p <- p +
   theme_ofce() +
  theme(legend.title = element_blank(),
        legend.position = "bottom") + 
  labs(x = element_blank(),
       # y = element_blank()
       y = "Note sur 100"
       )
p

Faire un graphique sous R

Ajout du theme ofce

Figure 2: Ajout d’un theme ‹ofce› et manipulations sur les fonctions themes
Figure 3: Ajout d’un theme ‹ofce› et manipulations sur les fonctions themes

Faire un graphique sous R

Changement des couleurs

# Une palette 'basique' ofce_palette
p <- p + scale_fill_manual(values = ofce::ofce_palette(n=3))
p
Figure 4: utilisation de palettes séquentielle (p1) et divergente(P2)
# Une palette 'sequentielle' ofce_palette_seq
p1 <- p + scale_fill_manual(values = ofce::ofce_palette_seq(n=3))
p1
Figure 5: utilisation de palettes séquentielle (p1) et divergente(P2)
# Une palette 'divergente' ofce_palette_div
p2 <- p + scale_fill_manual(values = ofce::ofce_palette_div(n=3))
p2
Figure 6: utilisation de palettes séquentielle (p1) et divergente(P2)

Faire un graphique sous R

# Soit à l'exterieur du graphique
p %>% add_logo_ofce()

# Soit à l'intérieur du graphique
p %>% add_logo_ofce_inside()

Faire un graphique sous R

Ajout d’un logo

Figure 7: Ajout d’un logo (image)

Autres fonctionnalités

Introduction

les templates Quarto

theme_ofce

Autres fonctionnalités

Exporter un graphique


Ces trois fonctions aident à exporter un graphique. Elles utilisent showtext pour assurer la bonne sortie des caractères à la bonne taille

  • graph2png(graph, file="", rep="svg", ratio = 4/3, dpi = 600)

pour un texte imprimé (A4), un bon ratio est 4/3, pour une présentation (16/10). Pour une carte ratio 1.

  • graph2svg

  • graph2jpg

f2si2


cette fonction sert à appliquer le Système International pour produire une chaîne de caractère compacte et lisible en utilisant des puissance de 1 000 et une notation standardisée (k, M, G, T, …).

Pratique pour les messages ou les échelles.

ofce::f2si2(c(2000000, 3000000), digits = 2) 
[1] "2M" "3M"
ofce::f2si2(c(142010, 2000000, 100.1928), digits = 2) 
[1] "142.01k" "2000k"   "0.1k"   
purrr::map_chr(c(142010, 2000000, 0.1928), ofce::f2si2)
[1] "142k"   "2M"     "192.8m"
ofce::uf2si2(c(1100,1110,2000,2100))
[1] "1.1k"  "1.11k" "2k"    "2.1k" 

Préférences de RStudio


la fonction setup_RStudio() force les préférences de RStudio à être :

  • pas de save de .Rdata

  • utilisation du « pipe natif »

  • utilisation du moteur graphique ragg

  • thème « iPlastic » (peut être un autre thème avec theme="Unautretheme")

  • console à droite

  • et quelques autres

Evolutivité du package {ofce}

Conclusion : pour résumer

  • On installe R, RStudio, Quarto, le package {ofce}


  • Un joli working paper en quarto prend 15 secondes avec setup_wp


  • Une présentation un peu moderne prend 10 secondes avec setup_pres


  • La mise en forme d’un graphique ggplot prend 5 secondes avec theme_ofce()


  • Le package {ofce} peut être encore meilleur grâce à vous !

Alors ?

Prochaines étapes


  • package encore en évolution : signalez vos difficultés, les bugs, vos souhaits
  • modèle de documents supplémentaires (policy brief, rapport)
  • définition d’une charte graphique du site web (html) aux documents (pdf)
  • intégration de la production de documents quarto directement sur le site via un processus simple (github)
    • blogs

    • documents de travail

    • policy brief

Merci pour votre attention

via GIPHY

Références