Sección 2 El lenguaje R

R (R Core Team 2022) es un lenguaje de programación orientado a objetos. Fue creado por Ross Ihaka y Robert Gentleman en 1993 como un dialecto del software S, fue publicado en 1996 (Ihaka and Gentleman 1996). Es un software libre y de código abierto, lo que significa que se puede usar, compartir y modificar el software libremente. Junto con el instalador de R, se distribuyen ciertos paquetes (packages) los cuales incluyen funciones para implementar algunos métodos estadísticos clásicos y modernos. Pot esta razón, muchas personas utilizan R para realizar análisis estadísticos. Muchos algoritmos y metodologías estadísticas están disponibles para ser implementadas en R, pero muchas de ellas se encuentran en paquetes específicos que no se encuentran en la instalación básica de R, por lo que para poder utilizar estas funciones, se debe descargar el paquete.

2.1 Generalidades del ambiente R

R distingue mayúsculas y minúsculas, esto significa que Producto y producto son dos palabras diferentes. Los comandos elementales consisten en expresiones o asignaciones. Si se ejecuta una expresión el resultado se imprimirá en la consola pero no se guardará dicho valor. Cuando se asigna un valor de una expresión (mediante el comando <-), el resultado no se imprimirá en pantalla pero el valor será asignado a un objeto que luego podrá reutilizarse. Diferentes sentencias de código (comandos) pueden ser separados por ; o por una nueva línea dentro del script, la segunda opción es la más utilizada por los usuarios. Un conjunto de comandos pueden estar encerrados entre llaves ({ y }). Los # indican comentarios en el código, todo lo que está a la derecha de este símbolo no será ejecutado por R. Si se desean hacer comentarios de más de una línea, cada una de ellas debe comenzar con #.

Si deseamos asignar en el objeto llamado x el valor del resultado de aplicar la raíz cuadrada al número 10, debemos utilizar la función <-:

x <- sqrt(10) #No se muestra el resultado

Para ver el valor de cualquier objeto, se puede especificar el nombre y ejecutar la línea, por ejemplo si deseamos ver el valor que está almacenado en x debemos escribir y ejecutar:

x #Se muestra el resultado
## [1] 3.162278
sqrt(10) #Se imprime en la consola el resultado
## [1] 3.162278

Las funciones son segmentos de código escrito para llevar a cabo una tarea específica, en el ejemplo anterior se utilizó la función sqrt para calcular la raíz cuadrada de 10. Las funciones pueden necesitar argumentos y devuelven uno o más valores en el resultado, algunas funciones pueden no devolver ningún resultado visible. Los argumentos de la función son los inputs para ejecutar la tarea. Argumentos deben ir dentro de paréntesis luego del nombre de la función, cada argumento se separa con , ((arg1, arg2 )). Nombres de los argumentos pueden especificarse explícitamente o no, en el ejemplo anterior los argumentos no se especificaron con nombre explícito. Si no se detalla el nombre del argumento, R entenderá que están en el mismo orden que se especificaron cuando se creó la función. En el caso de sqrt el primer y único argumento de la función es un objeto numérico.

Notar que los nombre de la mayoría de las funciones de R derivan del inglés y que R utiliza . como separador decimal.

2.2 Funciones y comandos básicos

En R se puede ejecutar cualquier operación matemática. Comencemos viendo algunas operaciones básicas:

Suma:

5 + 2
## [1] 7

Raíz cuadrada:

sqrt(15)
## [1] 3.872983

2.2.1 Tablas resumen de operadores y funciones

Tabla 2.1: Algunas funciones matemáticas en R
Sintaxis Operación
x + y suma de x e y
x - y diferencia de x e y
x * y multiplicación de x e y
x / y división de x por y
x %/% y parte entera de la división de x por y
x %% y resto de la división de x por y
x ^ y x elevado a y-ésima potencia
x < y x menor que y
x <= y x menor o igual que y
x > y x mayor que y
x >= y x mayor o igual que y
x == y x igual a y
x != y x no es igual a y
sqrt(x) raíz cuadrada de x
exp(x) exponencial de x
log(x) logaritmo natural de x
log(x, k) logaritmo base k de x
sum(x) suma de los elementos de x
prod(x) producto de los elementos de x
round(x, k) x redondeado a k dígitos

2.2.2 Ayuda

R incluye documentación de ayuda muy detallada. Para acceder a la ayuda de cada función, objeto o datos de prueba se debe ejecutar el comando help() o ?. Por ejemplo help(sqrt), o ?sqrt. Otra forma de pedir la ayuda es presionando la tecla F1 luego de seleccionar el nombre de la función en RStudio. La sentencia ?? busca un patrón dentro de la documentación del sistema de ayuda, es útil si no se conoce cuál función ejecuta cierto análisis. Otra herramienta muy útil para buscar ayuda es Google o Stack Overflow.

help(sqrt)
??square

2.2.3 Asignaciones

Como ya se especificó en la sección 2.1, un comando de asignación es <-, donde a la izquierda se especifica el nombre del objeto y a la derecha el valor, ya sean resultados de un cálculo matemático o de un análisis estadístico más complejo. Por ejemplo, si se desea asignar el valor de 5 al objeto radio se debe ejecutar radio <- 5. Otras formas de hacer asignaciones es mediante la utilización de = o ->, este último no es muy utilizado entre los usuarios de R.

Asignaremos al objeto x una secuencia numérica del 1 al 5 y luego imprimiremos el contenido de x en la consola:

x <- c(1, 2, 3, 4, 5)  #No se muestra el resultado
x                      #Se auto imprime el resultado
## [1] 1 2 3 4 5
print(x)               #Imprime el resultado de manera explícita 
## [1] 1 2 3 4 5
                       #mediante el comando print 

Otras formas de asignar valores es utilizando -> o =

c(1, 2, 3) -> x
x
## [1] 1 2 3
x = c(1, 2, 3, 4)
x
## [1] 1 2 3 4

Al utilizar el comando de asignación con el mismo nombre de objeto (x), cada vez que se utilizó ese comando, el valor que contenía previamente se reasignó con el valor nuevo.

2.2.4 R como herramienta estadística

En el paquete stats (uno de los paquetes instalados por defecto al momento de instala R) permite entre otras cosas, obtener la densidad, función de distribución (probabilidades), cuantiles y generar números aleatorios de las distribuciones estadísticas más comunes. Por ejemplo, si se desea generar 40 números aleatorios de una distribución normal estándar se deberá ejecutar la sentencia rnorm(40).

Si se desea calcular medidas descriptivas básicas de un vector se puede ejecutar mean para calcular la media, sd para calcular el desvío estándar y var para la varianza. Otra función útil para obtener valores de posición es la función summary.

x <- rnorm(40)
summary(x)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -2.90063 -0.69488  0.02006 -0.07096  0.67489  1.21151

2.2.5 R como herramienta gráfica

Con R se puede realizar gráficos y modificar numerosos parámetros de éste para que pueda ser publicado. A modo de ejemplo se realizará un histograma y un boxplot de la variable x generada anteriormente.

hist(x)

boxplot(x)

Podría decirse que la función más importante para generar gráficos dentro de los paquetes instalados por defecto es plot. Esta función permite permite realizar diagramas de dispersión y editar algunos elementos del gráfico.

x <-
  c(-4, -3, -2, -1, 0, 1, 2, 3, 4)  # Observar que se remplazó el objeto "x" que
                                    # se generó previamente
y <- x ^ 2
plot(x, y)

plot(x, y, type = "b", col = "red")


Ejercitación

  1. Funciones y comandos básicos

    Calcule la raíz cuadrada de 10

    Calcule el perimetro del círculo de radio 5 (\(P = 2\pi \times r\))

    Calcule 270 dividido la suma entre 12 y 78

    Calcule el cuadrado de 8

    Calcule el logaritmo de 10

  2. Asignaciones y aritmética vectorial

    Calcule el perímetro del círculo de radio 5 y guárdelo en el objeto per.

    Crear el vector de coordenadas 6,7,8,9,10 y llamarlo zSuma de dos vectores

    Calcular la suma de z y x

    Calcular el doble de x

    ¿Qué se obtiene haciendo el producto entre los vectores z y x?

  3. R como herramienta estadística

    Generar un vector y con 20 realizaciones de una normal con media 5 y desvío estándar 2. Calcular la media y la varianza de y. Realizar un histograma.

Referencias

Ihaka, Ross, and Robert Gentleman. 1996. “R: A Language for Data Analysis and Graphics.” Journal of Computational and Graphical Statistics 5 (3): 299–314.
R Core Team. 2022. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.