##############################################
# Liste de paquets R utiles en épidémiologie #
##############################################
# Ce script utilise la fonction p_load() du paquet **pacman**, 
# qui installe le paquet si ce dernier n'est pas encore installé sur
# l'ordinateur, et l'importe dans la session active pour l'utiliser 
# s'il est déjà installé.
# S'assure de l'installation du paquet "pacman".
if (!require("pacman")) install.packages("pacman")
#  Paquets du CRAN
##############################
pacman::p_load(
     
     # Apprendre R
     ############
     learnr,   # tutos interactifs dans le volet tutos de RStudio
     swirl,    # tutoriels interactifs dans la console R
        
     # Gestion des projets et des dossiers
     #############################
     here,     # chemins de fichiers relatifs au dossier racine du projet R
     rio,      # import/export de nombreux types de données
     openxlsx, # import/export de classeurs Excel à feuilles multiples 
     
     # Installation et gestion des paquets
     ################################
     pacman,   # installation et importation des paquets
     renv,     # gérer les versions des paquets lors de collaborations
     remotes,  # installer des paquets provenant de Github
     
     # Paquets généralistes pour gérer les données
     #########################
     tidyverse,    # méta-paquet qui comprend de nombreux paquets pour le traitement et la présentation des données.
          # dplyr : gestion des données
          # tidyr : gestion des données
          # ggplot2 : visualisation de données
          # stringr : travailler avec des chaînes de caractères et des caractères
          # forcats : travailler avec des facteurs 
          # lubridate : travailler avec des dates
          # purrr : itération et travail avec des listes
     linelist,     # nettoyage de linelists
     naniar,       # évaluation des données manquantes
     
     # Statistiques
     ############
     janitor,      # nettoyage des données
     gtsummary,    # création de tableaux descriptifs et statistiques
     rstatix,      # exécution rapide de tests et de résumés statistiques
     broom,        # nettoyage des résultats des régressions
     lmtest,       # likelihood-ratio tests
     easystats,
          # parameters, # alternative pour ordonner les résultats des régressions
          # see,        # alternative pour visualiser les forest plots
     
     # modélisation épidémiologique
     ###################
     epicontacts,    # Analyse des réseaux de transmission
     EpiNow2,        # Estimation de Rt
     EpiEstim,       # Estimation Rt
     projections,    # Projections d'incidence
     incidence2,     # Création d'épicurves et traitement des données d'incidence
     i2extras,       # Fonctions supplémentaires pour le paquet incidence2
     epitrix,        # Fonctions epi utiles
     distcrete,      # Distributions discrètes de délais
     
     
     # graphiques - general
     #################
     #ggplot2,     # inclus dans tidyverse
     cowplot,      # combinaison de graphiques  
     patchwork,  # combinaison de graphiques (alternative à cowplot)     
     RColorBrewer, # échelles de couleurs
     ggnewscale,   # pour ajouter des couches supplémentaires de schémas de couleurs
     # graphiques - types spécifiques
     ########################
     DiagrammeR,  # diagrammes utilisant le langage DOT
     incidence2,  # courbes épidémiques
     gghighlight, # mettre en évidence un sous-ensemble
     ggrepel,     # étiquettes intelligentes
     plotly,      # graphiques interactifs
     gganimate,   # graphiques animés 
     
     # SIG
     ######
     sf,            # pour gérer les données spatiales en utilisant un format Simple Feature
     tmap,          # pour produire des cartes simples, fonctionne à la fois pour les cartes interactives et statiques
     OpenStreetMap, # pour ajouter la carte de base OSM dans la carte ggplot
     spdep,         # statistiques spatiales 
     
     # Rapports automatisés
     #################
     rmarkdown,     # produit des PDFs, des documents Word, des Powerpoints, et des fichiers HTML
     reportfactory, # auto-organisation des sorties R Markdown
     officer,       # création de documents word et powerpoints (alternative à Rmarkdown)
     
     # Tableaux de bord
     ############
     flexdashboard, # création de tableaux de bord (syntaxe Rmarkdown)
     shiny,         # applications web interactives
     
     # Créer des tableaux pour présenter des résultats
     #########################
     knitr,       # Génération de rapports R Markdown et tableaux html
     flextable,   # Tableaux HTML
     # DT,        # Tableaux HTML (alternative)
     # gt,        # Tableaux HTML (alternative)
     # huxtable,  # Tableaux HTML (alternative) 
     
     # Phylogenetique
     ###############
     ggtree,  # visualisation et annotation d'arbres phylogénétiques
     ape,     # analyse phylogénétique et évolutive
     treeio,  # visualision des fichiers phylogénétiques
 
)5 Paquets conseillés
Vous trouverez ci-dessous une longue liste de paquets suggérés réaliser des tâches utiles lors d’analyses épidémiologies en R. Vous pouvez copier ce code, l’exécuter, et tous ces paquets seront installés à partir du CRAN et chargés pour être utilisés dans la session R actuelle. Si un paquet est déjà installé, il sera importé pour être utilisé mais pas réinstallé.
Vous pouvez modifier le code avec les symboles # pour exclure les paquets que vous ne voulez pas.
A noter :
- Installez le paquet pacman avant d’exécuter le code ci-dessous. Vous pouvez le faire avec 
install.packages("pacman"). Dans ce guide, nous mettons l’accent surp_load()de pacman, qui installe le paquet si nécessaire et l’importe dans la session R actuelle. Vous pouvez également charger des paquets qui sont déjà installés aveclibrary()depuis base R.
 - Dans le code ci-dessous, les paquets qui sont inclus lors de l’installation/de l’import d’un autre paquet sont indiqués par une indentation et un dièse. Par exemple, ggplot2 est listé sous tidyverse.
 - Si plusieurs paquets ont des fonctions portant le même nom, un masquage peut se produire lorsque la fonction du paquet le plus récemment chargé prend le dessus. Pour en savoir plus, consultez la page sur les bases de R. Vous pouvez utiliser le paquet conflicted pour gérer de tels conflits de manière explicite.
 - Voir la section sur les bases de R sur les paquets pour plus d’informations sur pacman et le masquage.
 
Pour voir les versions de R, RStudio et les paquets R utilisés lors de la production de ce manuel, voir la page sur les Notes techniques et choix éditoriaux.
5.1 Paquets disponibles sur le CRAN
5.2 Paquets hébergés sur Github
Vous trouverez ci-dessous les commandes pour installer des paquets directement depuis leur répertoire sur Github.
- La version de développement de epicontacts contient la possibilité de faire des arbres de transmission avec un axe x temporel.
 - Le paquet epirhandbook contient toutes les données d’exemple pour ce manuel et peut être utilisé pour télécharger la version hors ligne du manuel.
 
# Paquets à télécharger depuis Github (non disponibles sur CRAN)
##########################################################
# Version de développement d'epicontacts (pour les chaînes de transmission avec un axe x temporel)
pacman::p_install_gh("reconhub/epicontacts@timeline")
# Le paquet pour ce manuel, qui comprend toutes les données d'exemple 
pacman::p_install_gh("appliedepi/epirhandbook")