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 <-
:
<- sqrt(10) #No se muestra el resultado x
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:
#Se muestra el resultado x
## [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
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:
<- c(1, 2, 3, 4, 5) #No se muestra el resultado
x #Se auto imprime el resultado
x ## [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
= c(1, 2, 3, 4)
x 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
.
<- rnorm(40)
x 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
<- x ^ 2
y plot(x, y)
plot(x, y, type = "b", col = "red")
Ejercitación
-
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
-
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
z
Suma de dos vectoresCalcular la suma de
z
yx
Calcular el doble de
x
¿Qué se obtiene haciendo el producto entre los vectores
z
yx
? -
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 dey
. Realizar un histograma.