Capítulo 4 Primeros pasos

 

Vamos a empezar por lo sencillo: ¿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

 

¿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 variables lo haremos con <-, por ejemplo la orden x <- 1 + 2: una variable de nombre x va a tener asignada lo que valga la suma 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 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

 

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 6.5).

 

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: en tu consola (parte inferior de tu pantalla), asigna los valores 2 y 5 a dos variables a y b. Tras asignarles valores, multiplica los números en consola (haz click en la flecha para la solución propuesta).

  • Solución:
# Para poner comentarios en el código se usa #

# Definición de variables
a <- 2
b <- 5

# Multiplicación
a * b
## [1] 10
Multiplicación de a y b.

Imagen/gráfica 4.7: Multiplicación de a y b.

 

📝Ejercicio 2: modifica el código inferior para definir dos variables c y d, con valores 3 y -1, y calcular la división c/d (haz click en la flecha para la solución propuesta).

# Definición de variables
c <- 
d <-

# Operación (división)
c ? d

  • Solución:
# Definición de variables
c <- 3
d <- -1

# División
a / b
## [1] 0.4

 

📝Ejercicio 3: repite el ejercicio 1 pero ahora guarda el resultado de la multiplicación final en una variable c. Para ver el resultado guardado en c escribe dicha variable en consola (haz click en la flecha para la solución propuesta).

  • Solución:
# Variables
a <- 2
b <- 5

# Resultado
c <- a * b

# Muestro en consola
c
## [1] 10
Multiplicación de a y b guardando el resultado.

Imagen/gráfica 4.8: Multiplicación de a y b guardando el resultado.

 

📝Ejercicio 4: asigna ahora los valores 1, -2, 3 a tres variables a, b y c, y calcula la raíz cuadrada de cada uno.

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

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

 

📝Ejercicio 5: repite el ejercicio 3 pero ahora escribe el código en un script (fichero de .R, guardado en script01.R). Recuerda al acabar seleccionar las líneas a ejecutar y clickar Run, o bien guardar el script con Source on save activado (haz click en la flecha para la solución propuesta).

  • Solución:
Multiplicación de a y b guardando el resultado pero escribiendo en el script.

Imagen/gráfica 4.9: Multiplicación de a y b guardando el resultado pero escribiendo en el script.

 

📝Ejercicio 6: 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).

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

 

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

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

 

CONSEJO:

Las órdenes sqrt(x) y abs(y) 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.

 

📝Ejercicio 8: usando la variable x ya definida, calcula la resta x - 5 y guárdala en una nueva variable z (haz click en la flecha para la solución propuesta).

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

 

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

  • Solución:
t <- max(x, z)
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.