Capítulo 4 Primeros pasos

 

Ya hemos instalado lo necesario así que vamos a empezar por lo sencillo y recordando parte de lo que ya hemos realizado: ¿cómo usar R como una calculadora?

4.1 Primeros pasos en R: calculadora

¿Te acuerdas de lo que era la CONSOLA? En el caso de RStudio, la consola será esa pequeña pantalla que tenemos en la parte inferior (la pestaña Console). Vamos a trabajar de momento solo en esa ventana inferior.

Lanzando a consola nuestras primeras órdenes en RStudio.

Imagen/gráfica 4.1: Lanzando a consola nuestras primeras órdenes en RStudio.

Lo que ya hemos descubierto en los pasos de la instalación (ver imagen 4.1) es que la consola de R tiene una función muy básica y evidente: nos sirve de calculadora. Un ejemplo muy simple: si escribimos 3 en la consola y pulsamos ENTER, la consola nos mostrará el resultado de la suma

1 + 2
## [1] 3

 

Pero entonces…¿cuál es la diferencia entre una calculadora y un lenguaje de programación? Imagina que dicha suma 3 la quisiéramos utilizar para un segundo cálculo: ¿y si en lugar de lanzarlo a la consola sin más lo almacenamos en alguna variable?

Como hemos visto en la instalación de RStudio, para asignar valores a variables lo haremos con <-, por ejemplo con la orden x <- 1 + 2: una variable de nombre x va a tener asignada/guardada lo que valga la operación 1 + 2

x <- 1 + 2

Como puedes comprobar, en tu parte superior derecha (nuestro entorno de variables), podrás ver como una nueva variable x es ahora visualizada, con su valor asignado (no se mostrará en consola salvo que escribas 3 en ella: R asume que no querías visualizarla en consola sino solo guardarla).

Environment.

Imagen/gráfica 4.2: Environment.

y <- x - 3
x
## [1] 3
y
## [1] 0
x * y
## [1] 0

Dicha variable x además podemos reciclarla para definir, por ejemplo, una nueva variable y, restándole una constante. De la misma manera que hemos hecho restas, sumas y multiplicaciones, R tiene todas las operaciones clásicas que podrías tener en una calculadora. Prueba a ejecutar en la consola las órdenes x^2, sqrt(x) o abs(y): R calculará las operaciones elevar al cuadrado, raíz cuadrada y valor absoluto (respectivaemnte) de la variable que tengan entre paréntesis.

x^2
## [1] 9
sqrt(x)
## [1] 1.732051
y <- x - 5
abs(y)
## [1] 2

 

CONSEJO:

Las órdenes sqrt() y abs() se llaman funciones, y la variable que tienen entre paréntesis se llama argumento de la función: una variable que toma de entrada la función y con la que opera internamente.

 

4.2 ¿Y dónde programamos?

¿Estás emocionado/a? Vamos a abrir nuestro primer script. Un script será el documento en el que programamos, nuestro .doc, pero aquí será un archivo con extensión .R, donde escribiremos las órdenes, que nos evitará estar lanzando todo a consola. ¿Por qué no abusar de la consola? Una máxima para no olvidar: TODO lo que no escribas en un script, cuando cierres RStudio, lo habrás perdido (cómo si en lugar de escribir en un Word y guardarlo, nunca guardases el documento).

Para abrir nuestro primero script, haz click en el menú superior en File << New File << R Script como se muestra en la imagen 4.3

Abriendo nuestro primer script de R.

Imagen/gráfica 4.3: Abriendo nuestro primer script de R.

Tras abrirlo tendremos una cuarta ventana: esta será la ventana de nuestros códigos, la ventana más importante ya que es donde escribiremos lo que queremos ejecutar. Escribe el código de la suma de arriba en ese script y guarda el archivo haciendo click en el botón Save current document

a <- 1
b <-2
a + b
## [1] 3
Escribiendo y guardando nuestro primer script.

Imagen/gráfica 4.4: Escribiendo y guardando nuestro primer script.

Ese código no se ejecuta salvo que se lo digamos. Tenemos tres opciones para ejecutar código:

  • Copiar y pegar el trozo de código en la consola (como hemos hecho al principio).

  • Seleccionar líneas de código y clickar en Run (o con su atajo de teclado), lo que hará que se ejecute solo las líneas seleccionadas.

  • Activar el cuadrado Source on save a la derecha del botón de guardar y volvemos a hacer click en el botón de guardar: siempre que esa opción esté activada, al guardar no solo es nos guarda el archivo .R sino que además se ejecuta el código completo que tengas en el script.

4.3 Tipos de errores

Durante tu aprendizaje en R va a ser muy habitual que las cosas no salgan a la primera, apareciendo en consola mensajes en un color rojo. Un miedo muy habitual cuando se empieza a programar es pensar que si haces algo mal o aparece algún mensaje de error, el ordenador puede explotar en cualquier momento. A programar se aprende programando, así que haz las pruebas que quieras, lo peor que puede pasar es que necesites cerrar sesión en R Studio y abrirlo de nuevo, o en el peor de los casos, desintalarlo y volverlo a iinstalar.

Dado que el \(99.9\%\) de las veces tu código tendrá errores que deberás ir solventando, no está de más conocer los tipos de mensajes que R puede sacarte por consola.

Los mensajes de ERROR irán precedidos de la frase «Error in…», dándote a veces incluso el tipo de error y la línea de código en la que se ha producido. Veamos un ejemplo intentando sumar un número a una cadena de texto.

"a" + 1
## Error in "a" + 1: argumento no-numérico para operador binario

Los errores son aquellos fallos que seguramente impidan la ejecución del código. Un error muy habitual es intentar acceder a alguna función de algún paquete que, o bien no tenemos instalado, o bien no hemos llamado haciendo uso del library(): estás intentando leerte un libro de tu biblioteca pero ni siquiera has ido a la tienda a «comprarlo».

 

Los mensajes de WARNING irán precedidos de la frase «Warning in…», y son los fallos más delicados ya que son posibles errores o incoherencias que R detecta en tu código pero que no van a hacer que tu código deje de ejecutarse, aunque probablemente no lo haga como a ti te gustaría. Un ejemplo es cuando tratamos de hacer la raiz cuadrada de un número negativo.

sqrt(-1)
## Warning in sqrt(-1): Se han producido NaNs
## [1] NaN

¿Ha ejecutado la orden? Sí, pero te advierte de que el resultado de la operación es un NaN, un valor que no existe (al menos dentro de los números reales), un Not A Number (ver Sección ??).

 

Los mensajes de CONTROL serán aquellos que aparecerán por consola sin empezar por «Error in…» ni «Warning:…». Dichos mensajes, que puedes incluir tú mismo en tu código con funciones como cat() para monitorizar la ejecución de códigos largos, no son errores ni problemas, son simplemente información que R considera útil aportarte.

 

4.4 Glosario

GLOSARIO

  • Paquete: trozos de código realizadas por otros usuarios de la comunidad (y validades por el equipo de CRAN si la descarga es mediante install.packages()) para ser usados. Una vez instalados (descargados) los trozos de código a nuestro ordenador, basta con «acudir» a ellos con library().

Haciendo una metáfora con la colección de libros que tengas en casa: con la instalación hemos comprado el libro y lo tenemos en nuestra estantería (para siempre), con la llamada al paquete, por ejemplo library(ggplot2), lo que hacemos es decidir, de entre todos los libros de la estantería, cuales queremos llevarnos de viaje (en cada maleta que hagamos).

Los paquetes usados los verás denotados como {nombre_paquete} a lo largo del manual.

4.5 Consejos

CONSEJOS

 

Panel de ayuda

Si escribes en la consola ? nombre_funcion (por ejemplo, escribe en la consola ? sqrt), en el panel inferior derecho te aparecerá una documentación de ayuda de la función para saber que argumentos necesita, como puedes usar la función, qué es lo que te devuelve, ejemplos de uso, etc.

? sqrt
Panel de ayuda.

Imagen/gráfica 4.5: Panel de ayuda.

 

¿Cómo comentar el código?

Probablemente lo más importante al programar es que te acostumbres a comentar lo máximo posible tu código. ¿Qué es un comentario? Es un texto que escribes entre el código precedido de #: todo lo que venga detrás no será interpretado por R como código. Es vital cuando programamos que nos acostumbremos a comentar lo que hacemos, tanto para nosotros como para otras personas que puedan leer nuestro código.

 

Índice en el código

Puedes escribir comentarios en el código para que automáticamente se organice tu código en epígrafes, mostrándote un índice en el panel lateral (haz click en el icono de la esquina superior derecha del editor) y permitiendo minimizar partes del código. Para ello puedes comentar por ejemplo con # ----- título -----.

Comentando el código para generar un índice.

Imagen/gráfica 4.6: Comentando el código para generar un índice.

 

4.6 📝 Ejercicios

(haz click en las flechas para ver soluciones)

📝Ejercicio 1: asigna ahora los valores 1, -2, 3 a tres variables a, b y c distintas, y calcula la raíz cuadrada de cada uno (haz click en la flecha para la solución propuesta).

  • Solución:
# Variables
a <- 1
b <- -2
c <- 3

# Resultado
sqrt(a)
## [1] 1
sqrt(b)
## [1] NaN
sqrt(c)
## [1] 1.732051

 

📝Ejercicio 2: calcula en consola la suma de 3 más 4, y todo ello multiplicado por 10, y asígnalo a una variable x (haz click en la flecha para la solución propuesta). Imprime el valor por consola

  • Solución:
# Asignamos
x <- (3 + 4) * 10

# Imprimimos
x
## [1] 70

 

📝Ejercicio 3: asigna un valor positivo a x y calcula su raíz cuadrada; asigna otro negativo y calcula su valor absoluto con la función abs() (haz click en la flecha para la solución propuesta).

  • Solución:
# Raíz cuadrada
x <- 73 # por ejemplo
sqrt(x)
## [1] 8.544004
# Valor absoluto
y <- -19 # por ejemplo
abs(y)
## [1] 19

 

📝Ejercicio 4: usando la variable x ya definida, completa/modifica el código inferior para guardar en una nueva variable z el resultado guardado en x menos 5 (haz click en la flecha para la solución propuesta).

z <- ? - ?
z

  • Solución:
z <- x - 5
z
## [1] 68

 

📝Ejercicio 5: usando las variables x e y ya definidas, calcula el máximo de ambas (función max()), y guárdalo en una nueva variable t. (haz click en la flecha para la solución propuesta).

  • Solución:
t <- max(x, y)
t
## [1] 73

 

WARNING:

No hace falta gastar una línea por cada orden que quieras ejecutar. Tampoco necesitas guardar cada paso intermedio que realices. Cuidado con la memoria: cada asignación que hagas es una variable guardada que consume recursos en tu ordenador.