48  Obtenir de l’aide{#help}

Cette page explique comment obtenir de l’aide en postant un problème sur Github ou en publiant un exemple reproductible (“reprex”) sur un forum en ligne.

48.1 Github issues

Plusieurs packages et projets en R ont leur code sur le site Github.com. Vous pouvez communiquer directement avec les auteurs sur ce site en postant un “Issue”.

Pour en savoir plus sur comment sauvegarder vos travaux sur Github, consultez la page Collaboration et Github.

Sur Github, chaque projet est contenu dans un repository. Chaque repository contient du code, des données, des résultats, la documentation d’aide, etc. Il existe également un moyen de communiquer avec les auteurs dénommé “Issues”.

Ci-dessous, la page Github pour le package incidence2 (utilisé pour créer des courbes épidémiques). Vous pouvez voir l’onglet “Issues” surligné en jaune. Vous pouvez voir qu’il y a 5 issues ouvertes.

Une fois dans l’onglet Issues, vous pouvez voir les questions ou issues ouvertes. Lisez-les pour vous assurer que votre question n’est pas déjà abordée. Vous pouvez ouvrir un nouveau issue en cliquant sur le bouton vert à droite. Vous aurez besoin d’un compte Github pour le faire.

Dans votre question, suivez les instructions ci-dessous pour fournir un exemple minimal et reproductible. Et soyez gentil! La plupart des personnes qui développent des packages et des projets R le font pendant leur temps libre (comme ce manuel!).

Pour en savoir plus sur la gestion des questions dans votre propre repository Github, consultez la documentation sur les issues sur Github.

48.2 Exemple reproductible

Fournir un exemple reproductible (“reprex”) est essentiel pour obtenir de l’aide lorsque vous postez un message dans un forum ou dans un issue Github. Les gens veulent vous aider, mais vous devez leur donner un exemple avec lequel ils peuvent travailler sur leur propre ordinateur. L’exemple doit :

  • Démontrer le problème que vous avez rencontré
  • Être minimal, c’est-à-dire qu’il ne doit contenir que les données et le code nécessaires à la reproduction du problème.
  • Être reproductible, c’est-à-dire que tous les objets (par exemple les données) et les requêtes sur les packages (par exemple library() ou p_load()) sont inclus.

Aussi, assurez-vous de ne pas poster de données confidentielles avec le reprex! Vous pouvez créer des tableaux de données exemplaires, ou utiliser l’un des tableaux de données intégrés à R (entrez data() pour ouvrir une liste de ces ensembles de données).

Le package reprex

Le package reprex peut vous aider à créer un exemple reproduisible :

  1. reprex est installé avec tidyverse, donc chargez l’un ou l’autre des packages
# installer/charger tidyverse (qui inclut reprex)
pacman::p_load(tidyverse)
  1. Commencez un script R qui crée votre problème, étape par étape, en commençant par le chargement des packages et des données.
# charger les packages
pacman::p_load(
     tidyverse,  # gestion des donnees et visualisation 
     outbreaks)  # exemple de données sur les épidémies

# Liste des cas d'épidémie de grippe
outbreak_raw <- outbreaks::fluH7N9_china_2013 # récupérer les données à partir du package outbreaks 

# nettoyage des données
outbreak <- outbreak_raw %>% 
     mutate(across(contains("date"), as.Date))

# graphique de l'epidémie 

ggplot(data = outbreak)+
     geom_histogram(
          mapping = aes(x = date_of_onset),
          binwidth = 7
     )+
  scale_x_date(
    date_format = "%d %m"
  )

Copiez tout le code sur votre clipboard, et exécutez la commande suivante :

reprex::reprex()

Vous verrez une fenêtre HTML apparaître dans la fenêtre viewer de RStudio. Elle contiendra l’ensemble de votre code et tous les messages, les erreurs, ou les résultats de graphique. Ce résultat est également copié sur votre presse-papier, de façon à ce que vous pouvez le poster directement dans un issue Github ou un poste de forum.

  • Si vous définissez session_info = TRUE, le resultat de sessioninfo::session_info() avec votre version de R et du package R sera inclus.
  • Vous pouvez spécifier un répertoire de travail avec wd =.
  • Vous pouvez en lire plus sur les arguments et les variations possibles dans la documentation ou en saisissant ?reprex.

Dans l’exemple ci-dessus, la commande ggplot() ne s’est pas exécutée car l’argument date_format = n’est pas correcte - il devrait être date_labels =.

Données minimales

Les aidants doivent être en mesure d’utiliser vos données - idéalement, ils doivent pouvoir les créer avec du code.

Pour créer un ensemble de données minimales, considérez anonymer et utiliser seulement un sous-ensemble des observations.

EN CONSTRUCTION - vous pouvez également utiliser la fonction dput() pour créer un ensemble de données minimales.

48.3 Poster sur un forum

Lisez beaucoup de messages de forum. Essayez de comprendre quels messages sont bien rédigés et lesquels ne sont pas.

  1. Tout d’abord, décidez si vous devez poser la question. Avez-vous parcouru le site web du forum, en essayant divers termes de recherche, pour voir si votre question n’a pas déjà été posée ?

  2. Choisissez un titre informatif pour votre question (pas “Au secours ! ça ne marche pas”).

  3. Rédigez votre question :

  • Présentez votre situation et votre problème
  • Liez aux posts de problèmes similaires et expliquez pourquoi ils ne répondent pas à votre question
  • Incluez toute information pertinente pour aider quelqu’un qui ne connaît pas le contexte de votre travail.
  • Donnez un exemple minimal reproductible avec les informations de votre session R.
  • Utilisez la propre orthographe, grammaire et ponctuation, et divisez votre question en paragraphes pour faciliter la lecture.
  1. surveillez votre question une fois qu’elle est publiée pour pouvoir répondre à toute demande de clarification. Soyez gentil et aimable - souvent, les personnes qui répondent vous aident volontairement. Si vous avez une question complémentaire, demandez-vous si elle doit faire l’objet d’une question différente.

  2. Marquez la question comme ayant reçu une réponse, si vous obtenez une réponse qui répond à la demande originale. Cela permet aux autres personnes de reconnaître rapidement la solution.

Lisez ces articles sur comment poser une bonne question et le code de conduite de Stack overflow.

48.4 Resources

Page Tidyverse sur comment obtenir de l’aide

Astuces pour produire un ensemble de données minimal

Documentation de la fonction dput