Clase 1 Técnicas Estadísticas y Análisis de Datos Climáticos
Breve Introducción a R
¿Qué es R?
R es un lenguaje de programación y un ambiente de software estadístico de código abierto. Fue creado por Ross Ihaka y Robert Gentleman en la Universidad de Auckland, Nueva Zelanda en 1993. Desde entonces, se ha convertido en uno de los lenguajes de programación más populares en el mundo de la estadística y el análisis de datos.
¿Por qué usar R?
R es una herramienta poderosa para el análisis de datos y la estadística. Algunas de las razones por las que deberías considerar usar R son:
- Es gratuito y de código abierto, lo que significa que no tienes que pagar por licencias costosas.
- Tiene una amplia gama de paquetes para el análisis de datos, la visualización y el modelado estadístico.
- Es altamente extensible, puedes crear tus propias funciones y paquetes para adaptarse a tus necesidades.
- R es ampliamente utilizado en la comunidad de la ciencia de datos y tiene una gran cantidad de recursos y tutoriales disponibles en línea.
- Posibilidad de documentar código y hacer publicaciones científicas mediante Rmarkdown.
Paradigmas de programación en R
Funcional significa que las funciones en R se pueden manipular como se manipulan los vectores. R es un lenguaje de programación funcional y por ello las funciones se pueden utilizar para hacer cualquier cosa. Se pueden asignar a variables, almacenarlas, asignarlas a listas, pasarlas como argumentos a otras funciones, se pueden crear funciones dentro de otras funciones y una función puede retornar otra función como resultado. En particular las funciones son objetos, lo cual nos lleva al punto siguiente.
Orientado a Objetos significa que las variables, los datos, las funciones y sus resultados se pueden manipular como objetos. Estos objetos tienen un nombre y una estructura, además de las funciones que los manipulan. En particular algunos objetos se pueden manipular mediante los operadores, aritméticos, de comparación o lógicos. Las opciones de las funciones son objetos que se pueden manipular, así como las fórmulas o expresiones.
Tipos de objetos en R
1. Vectores
Son una serie de elementos del mismo tipo, como números, caracteres o lógicos. Se pueden crear con la función c() (por ejemplo, vector_numeros <- c(1, 2, 3)).
# Crear un vector de números
vector_numeros <- c(1, 2, 3, 4, 5)
vector_numeros## [1] 1 2 3 4 5
# Crear un vector de caracteres
vector_caracteres <- c("perro", "gato", "conejo")
vector_caracteres## [1] "perro" "gato" "conejo"
# Crear un vector lógico
vector_logico <- c(TRUE, FALSE, TRUE, TRUE)
vector_logico## [1] TRUE FALSE TRUE TRUE
# Indexar vectores
vector_numeros[2]## [1] 2
vector_numeros[2:4]## [1] 2 3 4
2. Matrices
Son vectores bidimensionales en los que todos los elementos son del mismo tipo. Se pueden crear con la función matrix() (por ejemplo, matriz_numeros <- matrix(1:9, nrow = 3)).
# Crear una matriz de números
matriz_numeros <- matrix(1:6, nrow = 2, ncol = 3)
matriz_numeros## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
# Crear una matriz de caracteres
matriz_caracteres <- matrix(c("a", "b", "c", "d", "e", "f"), nrow = 2, ncol = 3)
matriz_caracteres## [,1] [,2] [,3]
## [1,] "a" "c" "e"
## [2,] "b" "d" "f"
# Indexar matrices
matriz_numeros[1,3]## [1] 5
matriz_numeros[1,2:3]## [1] 3 5
3. Dataframes
Son estructuras de datos rectangulares que contienen variables (columnas) de diferentes tipos. Se pueden crear con la función data.frame() (por ejemplo, data_frame_ejemplo <- data.frame(nombre = c("Juan", "María"), edad = c(25, 30))).
# Crear un data frame con variables numéricas y de caracteres
data_frame_ejemplo <- data.frame(nombre = c("Juan", "María", "Pedro"), edad = c(25, 30, 28), ciudad = c("Madrid", "Barcelona", "Valencia"))
data_frame_ejemplo## nombre edad ciudad
## 1 Juan 25 Madrid
## 2 María 30 Barcelona
## 3 Pedro 28 Valencia
# Indexar dataframes
data_frame_ejemplo[,2]## [1] 25 30 28
data_frame_ejemplo[2,]## nombre edad ciudad
## 2 María 30 Barcelona
data_frame_ejemplo[2,1]## [1] "María"
data_frame_ejemplo$nombre## [1] "Juan" "María" "Pedro"
4. Arrays
Un array es similar a una matriz, pero puede tener más de dos dimensiones.
# Crear un array de 3 dimensiones con números
array_numeros <- array(1:24, dim = c(2, 3, 4))
array_numeros## , , 1
##
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
##
## , , 2
##
## [,1] [,2] [,3]
## [1,] 7 9 11
## [2,] 8 10 12
##
## , , 3
##
## [,1] [,2] [,3]
## [1,] 13 15 17
## [2,] 14 16 18
##
## , , 4
##
## [,1] [,2] [,3]
## [1,] 19 21 23
## [2,] 20 22 24
# Indexar arrays
array_numeros[1,2,3]## [1] 15
array_numeros[1,2,]## [1] 3 9 15 21
5. Listas
Son colecciones ordenadas de objetos que pueden ser de diferentes tipos. Se pueden crear con la función list() (por ejemplo, lista_ejemplo <- list(1, “hola”, TRUE)).
Condicionales
If-else statement:
Permite ejecutar un código si se cumple una condición y otro código si no se cumple. Por ejemplo:
edad <- 18
if (edad >= 18) {
print("Eres mayor de edad")
} else {
print("Eres menor de edad")
}## [1] "Eres mayor de edad"
Ifelse statement:
Es una forma abreviada del if-else statement que permite realizar una acción diferente para cada elemento de un vector en función de una condición. Por ejemplo:
numeros <- 1:10
resultado <- ifelse(numeros < 5, "Menor que 5", "Mayor o igual que 5")
print(resultado)## [1] "Menor que 5" "Menor que 5" "Menor que 5"
## [4] "Menor que 5" "Mayor o igual que 5" "Mayor o igual que 5"
## [7] "Mayor o igual que 5" "Mayor o igual que 5" "Mayor o igual que 5"
## [10] "Mayor o igual que 5"
Bucles
###For loop: Permite repetir una acción un número fijo de veces. Por ejemplo:
for (i in 1:5) {
print(paste("El valor de i es:", i))
}## [1] "El valor de i es: 1"
## [1] "El valor de i es: 2"
## [1] "El valor de i es: 3"
## [1] "El valor de i es: 4"
## [1] "El valor de i es: 5"
###While loop: Permite repetir una acción mientras se cumpla una condición. Por ejemplo:
i <- 1
while (i <= 5) {
print(paste("El valor de i es:", i))
i <- i + 1
}## [1] "El valor de i es: 1"
## [1] "El valor de i es: 2"
## [1] "El valor de i es: 3"
## [1] "El valor de i es: 4"
## [1] "El valor de i es: 5"