48 Cómo obtener ayuda
Esta página cubre cómo obtener ayuda mediante la publicación de un problema (Issue) en Github o mediante la publicación de un ejemplo reproducible (“reprex”) en un foro en línea.
48.1 Issues en Github
Muchos paquetes y proyectos de R tienen su código alojado en el sitio web Github.com. Puedes comunicarte directamente con los autores a través de este sitio web publicando un “Issue”.
Lee más sobre cómo almacenar tu trabajo en Github en la página Colaboración y Github.
En Github, cada proyecto está contenido en un repositorio. Cada repositorio contiene código, datos, resultados, documentación de ayuda, etc. También hay un vehículo para comunicarse con los autores llamado “Issues”.
Mira a continuación la página de Github del paquete incidence2 (utilizado para hacer curvas epidémicas). Puedes ver la pestaña “Issues” resaltada en amarillo. Puedes ver que hay 5 temas abiertos.
Una vez en la pestaña de problemas, podrás ver los problemas abiertos. Revísalas para asegurarte de que tu problema no ha sido ya tratado. Puedes abrir una nueva incidencia clicando en el botón verde de la derecha. Necesitarás una cuenta de Github para hacerlo.
En tu Issue, sigue las instrucciones que aparecen a continuación para proporcionar un ejemplo mínimo y reproducible. Y, por favor, ¡se cortés! La mayoría de las personas que desarrollan paquetes y proyectos de R lo hacen en su tiempo libre (¡como este manual!).
Para leer más materiales avanzados sobre el manejo de problemas en tu propio repositorio de Github, consulta su documentación sobre Problemas.
48.2 Ejemplo reproducible
Proporcionar un ejemplo reproducible (“reprex”) es la clave para obtener ayuda cuando se publica en un foro o en un Issue de Github. La gente quiere ayudarte, pero tienes que darles un ejemplo con el que puedan trabajar en su propio ordenador. El ejemplo debe:
Demostrar el problema que has encontrado
Ser mínimo, en el sentido de que incluya sólo los datos y el código necesarios para reproducir el problema
Ser reproducible, de manera que se incluyan todos los objetos (por ejemplo, los datos), las llamadas al paquete (por ejemplo,
library()
op_load()
)Además, ¡asegúrate de no publicar ningún dato sensible con el reprex!* Puedes crear dataframes de ejemplo, o utilizar uno de los dataframes incorporados en R (escribe
data()
para ver una lista de estos set de datos).
El paquete reprex
El paquete reprex puede ayudarte a crear un ejemplo reproducible:
- reprex se instala con tidyverse, así que carga cualquiera de los dos paquetes
# instalar/cargar tidyverse (que incluye reprex)
::p_load(tidyverse) pacman
- Inicia un script de R que cree el problema, paso a paso, empezando por la carga de paquetes y datos.
# cargar paquetes
::p_load(
pacman# gestión y visualización de datos
tidyverse, # datos de ejemplo de brotes
outbreaks)
# lista de casos del brote de gripe
<- outbreaks::fluH7N9_china_2013 # obtener datos del paquete de brotes
outbreak_raw
# Limpiar los datos
<- outbreak_raw %>%
outbreak mutate(across(contains("date"), as.Date))
# Graficar el brote
ggplot(data = outbreak)+
geom_histogram(
mapping = aes(x = date_of_onset),
binwidth = 7
+
)scale_x_date(
date_format = "%d %m"
)
Copia todo el código en tu portapapeles y ejecuta el siguiente comando:
::reprex() reprex
Verás que aparece una salida HTML en el panel del visor de RStudio. Contendrá todo tu código y cualquier advertencia, error o salida de gráficos. Esta salida también se copia en el portapapeles, por lo que puedes publicarla directamente en un Issue de Github o en un mensaje del foro.
- Si estableces
session_info = TRUE
se incluirá la salida desessioninfo::session_info()
con tus versiones de R y del paquete utilizado - Puedes proporcionar un directorio de trabajo con
wd =
- Puedes leer más sobre los argumentos y las posibles variaciones en esta página o introduciendo ?reprex
En el ejemplo anterior, el comando ggplot()
no se ejecutó porque el argumento date_format =
no es correcto - debería ser date_labels =
.
Datos mínimos
Los revisores tienen que ser capaces de utilizar tus datos - idealmente tienen que ser capaces de crearlos con código.
Para crear unos datos mínimos, considera la posibilidad de anonimizarlos y utilizar sólo un subconjunto de las observaciones.
EN CONSTRUCCIÓN - también puede utilizar la función dput()
para crear unos datos mínimo.
48.3 Publicar en un foro
Lee muchos mensajes de foros. Comprende qué mensajes están bien escritos y cuáles no.
En primer lugar, decide si vas a formular la pregunta. Has revisado a fondo el sitio web del foro, probando con varios términos de búsqueda, para ver si tu pregunta ya ha sido formulada?
Dale a tu pregunta un título informativo (no “¡Ayuda! esto no funciona”).
Escribe tu pregunta:
- Presenta la situación y tu problema
- Enlaza con posts de temas similares y explica cómo no responden a tu pregunta
- Incluye cualquier información relevante para ayudar a alguien que no conozca el contexto de tu trabajo
- Da un ejemplo mínimo reproducible con la información de tu sesión de R
- Utiliza la ortografía, la gramática y la puntuación adecuadas, y divide tu pregunta en párrafos para que sea más fácil de leer
Supervisa tu pregunta una vez publicada para responder a cualquier solicitud de aclaración. Se cortés y amable: a menudo las personas que responden están ofreciendo su tiempo para ayudarte. Si tienes una pregunta de seguimiento, piensa si debe ser una pregunta publicada por separado.
Marca la pregunta como respondida, si obtienes una respuesta que satisfaga la petición original. Esto ayuda a que otros reconozcan más tarde rápidamente la solución.
Lee estos posts sobre cómo hacer una buena pregunta el código de conducta de Stack overflow.
48.4 Recursos
Página de Tidyverse sobre cómo obtener ayuda
Consejos para elaborar unos datos mínimos
Documentación de la función dput