2 Intro

El Camino es la primera sección de R pre-introductorio y está compuesta por los siguientes capítulos:

  • Preparativos, donde explico cómo instalar R y RStudio y cómo organizar la computadora para que programar no sean tan difícil.

  • Conceptos es, de hecho, la auténtica pre-introducción a R. Es el capítulo central de todo el libro, el que contribuye a consolidar un vocabulario común y a familiarizarnos con R.

  • Recursos elabora un plan de estudio para aprender a programar en R; además, presenta código para el abordaje de tareas típicas de análisis de datos y recomienda algunos libros clave.

  • Hábitos es un decálogo de las buenas prácticas que caracterizan a una persona programadora competente, integral y comprometida con su proceso de aprendizaje.

Antes de que pasen adelante, quiero reflexionar sobre el lado malo de R: los errores.

2.1 Errores e intuición

R es un lenguaje de programación. En otras palabras, R se basa en la escritura de código. ¿Qué código? El código son los comandos que uno mismo va pasándole a la computadora para que ejecute una u otra acción.

Digamos, para empezar, que programar quiere decir escribir código.

Es normal que la programación sea intimidante a primera vista. Si uno carece de adiestramiento en computación, la barrera de entrada puede ser ciertamente alta. Pero una vez superado ese umbral de incomodidad, uno llega a disfrutar de una relación más o menos lineal entre el tiempo que invierte en aprender una habilidad nueva y el dominio efectivo de la habilidad en cuestión.

Al principio todo será un poco más frustrante y habrá que tener paciencia…

Lo más frustrante serán los errores. Acabo de decir que programar equivale a escribir código. El problema es que R no acepta cualquier código: Si el código no es correcto, R devuelve un error y no nos permite avanzar:

"3" + "4"
#> Error in "3" + "4": non-numeric argument to binary operator

Observen que el código anterior generó un error. Yo pretendía sumar "3" y "4" pero R no me dejó. Este error se debe a que entrecomillar los números los convirtió en texto, y el texto -evidentemente- no se puede sumar.

Les estoy avisando que lidiar con los errores se puede volver frustrante, en especial porque la mayoría de las veces los mensajes que R devuelve no son claros: “Error in”3” + “4” : non-numeric argument to binary operator”.

El dirty secret de la programación es que absolutamente todas las personas usuarias de R pasamos el día entero comiendo errores; se nos va la vida metidos en Google, buscándole arreglo a esa línea de código que no quiso correr… Eso es programar: escribir código, ejecutarlo, descifrar los errores que devuelve la consola, reescribir el código, seguir descifrando errores, y mucho, muchísimo Google en medio de todo ello. A veces el error desaparece y el código por fin corre pero los resultados obtenidos no son los planeados, lo que quiere decir que, aunque ya R lo acepta, el código igual no es bueno porque no da lo que uno pretendía obtener.

Programar consiste en escribir código y resolver errores.

3 + 4
#> [1] 7

R no le perdona nada a nadie. Hasta las personas que programan a niveles senior son presas del error. La diferencia entre una persona experimentada y una novata es que la persona con más práctica, gracias a las muchísimas horas de vuelo que carga encima, ha desarrollado una especie de intuición que le permite corregir velozmente su código imperfecto.

Uno realmente nunca deja de producir código malo, código que resulta en un error. Lo que sí cambia, y cambia dramáticamente para bien, es nuestra capacidad de corregir código con rapidez. A esa capacidad le llamaremos intuición.

Los contenidos de R pre-introductorio están planeados para desarrollar la intuición que nos hará capaces de solucionar rápidamente el código que genera errores. También la intuición incrementa la probabilidad de que produzcamos buen código desde el primer intento. Sin embargo, desarrollar esa intuición requiere tiempo y cariño, porque no hay forma de conseguirla si no es persistiendo ante la inevitable frustración de los primeros meses días.

Es perfectamente posible consustanciarse con este lenguaje y desarrollar nuestra intuición para escribir código correcto sin tener que intentarlo demasiadas veces. De ahí en adelante, uno llega a ser capaz de aprender prácticamente cualquier habilidad nueva (siempre que invierta el tiempo justo en perfeccionarla).

El enamoramiento con R se vuelve total.