3.6 Operaciones matemáticas y vectorización

R puede ser usado como una calculadora:

2+2
## [1] 4
x <- 4*(3+5)^2
x / 10
## [1] 25.6

En R se puede operar sobre vectores igual que se opera sobre números. De hecho, en R, un número es un vector numérico de longitud 1:

c(length(2), length(x))
## [1] 1 1

Así que se pueden hacer cosas tales como:

x <- 1:10
2*x 
2*x + 1
x^2 
x*x 

Operaciones como las anteriores están vectorizadas, i.e., admiten un vector como argumento y operan sobre cada uno de los elementos. Generalmente, las operaciones vectorizadas son muy rápidas en R. Muchos problemas de rendimiento en R se resuelven, de hecho, utilizando versiones vectorizadas del código ineficiente16.

Comprueba que log es una función vectorizada aplicándosela a x.

Calcula el valor medio de la longitud de los pétalos de iris usando mean.

Repite el ejercicion anterior usando sum y length.

Suma un millón de términos de la fórmula de Leibniz] para aproximar π. Pista: crea primero un vector con los índices (del 0 al 1000000) y transfórmalo adecuadamente.

Si x <- 1:10 e y <- 1:2, ¿cuánto vale x * y? ¿Qué pasa si y <- 1:3?

La operación a la que se refiere el ejercicio anterior se denomina reciclado de vectores. Para aprender más sobre el reciclado de vectores, puede consultar, por ejemplo, http://www.hep.by/gnu/r-patched/r-lang/R-lang_41.html].


  1. De hecho, uno de los errores más frecuentes de los novatos en R que tienen experiencia previa en lenguajes de programación tales como Java, C o Matlab es utilizar código no vectorizado: blucles for y similares. En R se prefiere casi siempre recurrir a la vectorización.