R es un lenguaje de programación orientado al análisis estadístico, la manipulación de datos y la visualización.
En esta primera sesión aprenderemos a:
Podemos utilizar R directamente para efectuar operaciones matemáticas.
2 + 2
## [1] 4
10 - 4
## [1] 6
5 * 3
## [1] 15
10 / 2
## [1] 5
2^3
## [1] 8
sqrt(25)
## [1] 5
Por ejemplo,
\[ \frac{10+5}{3}=5. \]
En R:
(10 + 5) / 3
## [1] 5
Uno de los conceptos fundamentales de R es el objeto.
Utilizamos el operador <- para guardar
información.
x <- 10
Podemos visualizar el contenido del objeto:
x
## [1] 10
Y utilizarlo en operaciones:
x + 5
## [1] 15
x * 2
## [1] 20
x^2
## [1] 100
sqrt(x)
## [1] 3.162278
La lógica es:
\[ \text{valor} \longrightarrow \text{objeto} \longrightarrow \text{operación} \]
Un vector permite almacenar varias observaciones.
Supongamos las edades de cinco estudiantes:
edad <- c(18, 20, 21, 19, 22)
edad
## [1] 18 20 21 19 22
La función c() significa combinar.
El vector contiene:
\[ \mathbf{x}= (18,20,21,19,22) \]
R permite realizar operaciones directamente sobre todos los elementos de un vector.
edad + 1
## [1] 19 21 22 20 23
También podemos escribir:
edad * 2
## [1] 36 40 42 38 44
edad^2
## [1] 324 400 441 361 484
sqrt(edad)
## [1] 4.242641 4.472136 4.582576 4.358899 4.690416
Por ejemplo,
\[ x_i^*=x_i+1. \]
R aplica esta transformación a cada elemento del vector.
Los corchetes [ ] permiten seleccionar posiciones.
Primera observación:
edad[1]
## [1] 18
Tercera observación:
edad[3]
## [1] 21
Varias observaciones:
edad[c(1, 3, 5)]
## [1] 18 21 22
Podemos preguntar qué valores cumplen una condición.
edad > 20
## [1] FALSE FALSE TRUE FALSE TRUE
R devuelve:
FALSE FALSE TRUE FALSE TRUE
Podemos utilizar esa condición para seleccionar datos:
edad[edad > 20]
## [1] 21 22
La expresión significa:
seleccionar las edades para las cuales edad es mayor que 20.
Una función tiene la estructura general:
funcion(argumento)
Por ejemplo:
mean(edad)
## [1] 20
calcula la media:
\[ \bar{x} = \frac{1}{n} \sum_{i=1}^{n}x_i. \]
Otras funciones importantes son:
sum(edad)
## [1] 100
length(edad)
## [1] 5
min(edad)
## [1] 18
max(edad)
## [1] 22
median(edad)
## [1] 20
var(edad)
## [1] 2.5
sd(edad)
## [1] 1.581139
Creamos tres vectores:
nombre <- c("Ana", "Luis", "Pedro", "Sofia", "Juan")
edad <- c(18, 20, 21, 19, 22)
nota <- c(5.5, 4.8, 6.1, 5.9, 4.2)
Ahora los combinamos mediante data.frame():
datos <- data.frame(
nombre = nombre,
edad = edad,
nota = nota
)
datos
## nombre edad nota
## 1 Ana 18 5.5
## 2 Luis 20 4.8
## 3 Pedro 21 6.1
## 4 Sofia 19 5.9
## 5 Juan 22 4.2
Conceptualmente:
| nombre | edad | nota |
|---|---|---|
| Ana | 18 | 5.5 |
| Luis | 20 | 4.8 |
| Pedro | 21 | 6.1 |
| Sofia | 19 | 5.9 |
| Juan | 22 | 4.2 |
Una fila representa una observación y una columna representa una variable.
Para seleccionar una columna utilizamos $.
datos$edad
## [1] 18 20 21 19 22
Podemos aplicar funciones sobre ella:
mean(datos$edad)
## [1] 20
mean(datos$nota)
## [1] 5.3
sd(datos$nota)
## [1] 0.7905694
Algunas funciones fundamentales son:
head(datos)
## nombre edad nota
## 1 Ana 18 5.5
## 2 Luis 20 4.8
## 3 Pedro 21 6.1
## 4 Sofia 19 5.9
## 5 Juan 22 4.2
str(datos)
## 'data.frame': 5 obs. of 3 variables:
## $ nombre: chr "Ana" "Luis" "Pedro" "Sofia" ...
## $ edad : num 18 20 21 19 22
## $ nota : num 5.5 4.8 6.1 5.9 4.2
summary(datos)
## nombre edad nota
## Length:5 Min. :18 Min. :4.2
## Class :character 1st Qu.:19 1st Qu.:4.8
## Mode :character Median :20 Median :5.5
## Mean :20 Mean :5.3
## 3rd Qu.:21 3rd Qu.:5.9
## Max. :22 Max. :6.1
dim(datos)
## [1] 5 3
names(datos)
## [1] "nombre" "edad" "nota"
Estas funciones responden distintas preguntas:
| Función | Utilidad |
|---|---|
head() |
primeras observaciones |
str() |
estructura de los datos |
summary() |
resumen estadístico |
dim() |
filas y columnas |
names() |
nombres de las variables |
Podemos utilizar las funciones gráficas incorporadas en R.
hist(datos$nota)
boxplot(datos$nota)
plot(datos$edad, datos$nota)
El último gráfico representa la relación:
\[ \text{Edad} \longrightarrow \text{Nota}. \]
Construya el siguiente vector:
peso <- c(65, 72, 68, 80, 75, 69, 71)
Calcule:
Finalmente, construya:
hist(peso)
boxplot(peso)
En esta sesión utilizamos:
mean(edad) # media
## [1] 20
median(edad) # mediana
## [1] 20
var(edad) # varianza
## [1] 2.5
sd(edad) # desviación estándar
## [1] 1.581139
min(edad) # mínimo
## [1] 18
max(edad) # máximo
## [1] 22
length(edad) # número de elementos
## [1] 5
data.frame(edad) # crear una base de datos
## edad
## 1 18
## 2 20
## 3 21
## 4 19
## 5 22
head(edad) # primeras filas
## [1] 18 20 21 19 22
str(edad) # estructura
## num [1:5] 18 20 21 19 22
summary(edad) # resumen estadístico
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18 19 20 20 21 22
hist(edad) # histograma
boxplot(edad) # diagrama de caja
plot(edad) # gráfico de dispersión
La secuencia fundamental es:
\[ \boxed{ \text{crear} \rightarrow \text{observar} \rightarrow \text{seleccionar} \rightarrow \text{calcular} \rightarrow \text{graficar} } \]
output: html_document: self_contained: true code_folding: show toc: true toc_float: true