8  Flujo de trabajo: obtener ayuda

Este libro no es una isla; no existe un solo recurso que te permita dominar R. A medida que comience a aplicar las técnicas descritas en este libro a sus propios datos, pronto encontrará preguntas que no respondemos. Esta sección describe algunos consejos sobre cómo obtener ayuda y ayudarlo a seguir aprendiendo.

8.1 Google es tu amigo

Si te quedas atascado, empieza con Google. Por lo general, agregar “R” a una consulta es suficiente para restringirla a resultados relevantes: si la búsqueda no es útil, a menudo significa que no hay resultados específicos de R disponibles. Además, agregar nombres de paquetes como “tidyverse” o “ggplot2” ayudará a reducir los resultados a un código que también le resulte más familiar, por ejemplo, “cómo hacer un diagrama de caja en R” frente a “cómo hacer un diagrama de caja en R con ggplot2”. Google es particularmente útil para los mensajes de error. Si recibe un mensaje de error y no tiene idea de lo que significa, intente buscarlo en Google. Lo más probable es que alguien más se haya confundido en el pasado, y habrá ayuda en algún lugar de la web. (Si el mensaje de error no está en inglés, ejecute Sys.setenv(LANGUAGE = "en") y vuelva a ejecutar el código; es más probable que encuentre ayuda para los mensajes de error en inglés).

Si Google no ayuda, prueba Stack Overflow. Comience dedicando un poco de tiempo a buscar una respuesta existente, incluida [R], para restringir su búsqueda a preguntas y respuestas que usen R.

8.2 Haciendo un reprex

Si tu búsqueda en Google no encuentra nada útil, es una muy buena idea preparar un reprex, abreviatura de ejemplo mínimo reproducible (en inglés, reproducible example). Un buen reprex facilita que otras personas te ayuden y, a menudo, resolverás el problema por ti mismo mientras lo haces. Hay dos partes para crear un reprex:

  • Primero, debe hacer que su código sea reproducible. Esto significa que necesita capturar todo, es decir, incluir cualquier llamada a library() y crear todos los objetos necesarios. La forma más fácil de asegurarse de que ha hecho esto es usar el paquete reprex.

  • En segundo lugar, debe hacerlo mínimo. Elimina todo lo que no esté directamente relacionado con tu problema. Esto generalmente implica crear un objeto de R mucho más pequeño y simple que el que enfrenta en la vida real o incluso usar datos integrados.

¡Eso suena como un monton de trabajo! Y puede ser, pero tiene una gran recompensa:

  • El 80% de las veces, la creación de un excelente reprex revela el origen de su problema. Es sorprendente la frecuencia con la que el proceso de escribir un ejemplo mínimo e independiente le permite responder a su propia pregunta.

  • El otro 20% del tiempo, habrá capturado la esencia de su problema de una manera que sea fácil de manejar para otros. ¡Esto mejora sustancialmente sus posibilidades de obtener ayuda!

Al crear un reprex a mano, es fácil pasar por alto algo accidentalmente, lo que significa que su código no se puede ejecutar en la computadora de otra persona. Evite este problema utilizando el paquete reprex, que se instala como parte de tidyverse. Digamos que copia este código en su portapapeles (o, en RStudio Server o Cloud, selecciónelo):

y <- 1:4
mean(y)

Luego llame a reprex(), donde la salida predeterminada tiene formato para GitHub:

reprex::reprex()

Se mostrará una vista previa de HTML muy bien representada en el Visor de RStudio (si está en RStudio) o en su navegador predeterminado de lo contrario. El reprex se copia automáticamente en su portapapeles (en RStudio Server o Cloud, deberá copiarlo usted mismo):

``` r
y <- 1:4
mean(y)
#> [1] 2.5
```

Este texto tiene un formato especial, llamado Markdown, que se puede pegar en sitios como StackOverflow o Github y automáticamente lo renderizarán para que parezca código. Así es como se vería ese Markdown representado en GitHub:

y <- 1:4
mean(y)
#> [1] 2.5

Cualquier otra persona puede copiar, pegar y ejecutar esto inmediatamente.

Hay tres cosas que debe incluir para que su ejemplo sea reproducible: paquetes requeridos, datos y código.

  1. Los paquetes deben cargarse en la parte superior del script para que sea fácil ver cuáles necesita el ejemplo. Este es un buen momento para comprobar que está utilizando la última versión de cada paquete; es posible que haya descubierto un error que se solucionó desde que instaló o actualizó el paquete por última vez. Para los paquetes en tidyverse, la forma más fácil de verificar es ejecutar tidyverse_update().

  2. La forma más fácil de incluir datos es usar dput() para generar el código de R necesario para recrearlo. Por ejemplo, para recrear el conjunto de datos mtcars en R, realice los siguientes pasos:

    1. Ejecute dput(mtcars) en R
    2. Copie la salida
    3. En reprex, escriba mtcars <-, luego pegue.

    Trate de usar el subconjunto más pequeño de sus datos que aún revele el problema.

  3. Dedique un poco de tiempo a asegurarse de que su código sea fácil de leer para otros:

    • Asegúrese de haber utilizado espacios y de que los nombres de las variables sean concisos pero informativos.

    • Utilice comentarios para indicar dónde radica su problema.

    • Haz tu mejor esfuerzo para eliminar todo lo que no esté relacionado con el problema.

    Cuanto más corto sea su código, más fácil será de entender y más fácil de arreglar.

Termine comprobando que realmente ha creado un ejemplo reproducible iniciando una nueva sesión de R y copiando y pegando su secuencia de comandos.

Crear reprexes no es trivial, y se necesitará algo de práctica para aprender a crear reprexes buenos y realmente mínimos.

Sin embargo, aprender a hacer preguntas que incluyan el código e invertir el tiempo para hacerlo reproducible seguirá dando sus frutos a medida que aprenda y domine R.

8.3 Invertir en ti mismo

También debe pasar algún tiempo preparándose para resolver problemas antes de que ocurran. Invertir un poco de tiempo en aprender R cada día valdrá la pena a largo plazo. Una forma es seguir lo que hace el equipo de tidyverse en el blog de tidyverse. Para mantenerse al día con la comunidad R de manera más amplia, recomendamos leer R Weekly: es un esfuerzo de la comunidad para agregar las noticias más interesantes de la comunidad de R cada semana.

8.4 Resumen

Este capítulo concluye la parte de El Juego Completo del libro. Ahora ha visto las partes más importantes del proceso de ciencia de datos: visualización, transformación, limpieza e importación. Ahora tiene una visión holística de todo el proceso y comenzamos a entrar en los detalles de las piezas pequeñas.

La siguiente parte del libro, Visualizar, profundiza en la gramática de los gráficos y la creación de visualizaciones de datos con ggplot2, muestra cómo usar las herramientas que ha aprendido hasta ahora para realizar análisis exploratorios de datos e introduce buenas prácticas para crear gráficos para comunicarse.