Introducción
En R, los vectores y las listas son dos de las estructuras de datos más fundamentales y versátiles. Comprender cómo crear, manipular y utilizar estas estructuras es esencial para cualquier programador que trabaje con R. En esta sección, aprenderemos sobre:
- Vectores: Qué son, cómo crearlos y manipularlos.
- Listas: Qué son, cómo crearlas y manipularlas.
- Diferencias clave entre vectores y listas.
Vectores
¿Qué es un Vector?
Un vector es una secuencia de elementos del mismo tipo. En R, los vectores pueden contener datos numéricos, caracteres o lógicos.
Creación de Vectores
Para crear un vector en R, utilizamos la función c(), que significa "concatenar".
# Vector numérico
numeros <- c(1, 2, 3, 4, 5)
print(numeros)
# Vector de caracteres
caracteres <- c("a", "b", "c", "d")
print(caracteres)
# Vector lógico
logicos <- c(TRUE, FALSE, TRUE)
print(logicos)Operaciones con Vectores
Podemos realizar diversas operaciones con vectores, como sumar, restar, multiplicar y dividir.
# Suma de vectores v1 <- c(1, 2, 3) v2 <- c(4, 5, 6) suma <- v1 + v2 print(suma) # Multiplicación de vectores producto <- v1 * v2 print(producto)
Indexación de Vectores
Podemos acceder a elementos específicos de un vector utilizando corchetes [].
# Acceder al segundo elemento segundo_elemento <- numeros[2] print(segundo_elemento) # Acceder a múltiples elementos varios_elementos <- numeros[c(1, 3, 5)] print(varios_elementos)
Funciones Útiles para Vectores
R proporciona varias funciones útiles para trabajar con vectores.
# Longitud del vector longitud <- length(numeros) print(longitud) # Suma de todos los elementos suma_total <- sum(numeros) print(suma_total) # Promedio de los elementos promedio <- mean(numeros) print(promedio)
Listas
¿Qué es una Lista?
Una lista es una estructura de datos que puede contener elementos de diferentes tipos y tamaños. A diferencia de los vectores, los elementos de una lista no tienen que ser del mismo tipo.
Creación de Listas
Para crear una lista en R, utilizamos la función list().
# Lista con diferentes tipos de elementos
mi_lista <- list(numeros = c(1, 2, 3),
caracteres = c("a", "b", "c"),
logicos = c(TRUE, FALSE, TRUE))
print(mi_lista)Acceso a Elementos de una Lista
Podemos acceder a los elementos de una lista utilizando el operador $ o corchetes dobles [[ ]].
# Acceder a un elemento por nombre numeros_lista <- mi_lista$numeros print(numeros_lista) # Acceder a un elemento por índice caracteres_lista <- mi_lista[[2]] print(caracteres_lista)
Modificación de Elementos de una Lista
Podemos modificar los elementos de una lista de manera similar a cómo accedemos a ellos.
Añadir y Eliminar Elementos
Podemos añadir nuevos elementos a una lista y eliminar elementos existentes.
# Añadir un nuevo elemento
mi_lista$nuevo_elemento <- c("nuevo", "elemento")
print(mi_lista)
# Eliminar un elemento
mi_lista$caracteres <- NULL
print(mi_lista)Diferencias Clave entre Vectores y Listas
| Característica | Vectores | Listas |
|---|---|---|
| Tipo de Elementos | Homogéneos (mismo tipo) | Heterogéneos (diferentes tipos) |
| Acceso a Elementos | Índices numéricos | Índices numéricos o nombres |
| Funciones Comunes | length(), sum(), mean() |
length(), names() |
Ejercicios Prácticos
Ejercicio 1: Creación y Manipulación de Vectores
- Crea un vector numérico con los números del 1 al 10.
- Calcula la suma y el promedio de los elementos del vector.
- Accede al cuarto y séptimo elemento del vector.
# Solución vector_ejercicio <- c(1:10) suma_vector <- sum(vector_ejercicio) promedio_vector <- mean(vector_ejercicio) cuarto_elemento <- vector_ejercicio[4] septimo_elemento <- vector_ejercicio[7] print(suma_vector) print(promedio_vector) print(cuarto_elemento) print(septimo_elemento)
Ejercicio 2: Creación y Manipulación de Listas
- Crea una lista que contenga un vector numérico, un vector de caracteres y un vector lógico.
- Accede al vector de caracteres y modifícalo para que contenga "x", "y", "z".
- Añade un nuevo elemento a la lista que sea un vector con los números del 11 al 15.
# Solución
lista_ejercicio <- list(numeros = c(1, 2, 3),
caracteres = c("a", "b", "c"),
logicos = c(TRUE, FALSE, TRUE))
lista_ejercicio$caracteres <- c("x", "y", "z")
lista_ejercicio$nuevos_numeros <- c(11:15)
print(lista_ejercicio)Conclusión
En esta sección, hemos aprendido sobre vectores y listas en R, dos estructuras de datos fundamentales. Hemos visto cómo crearlos, manipularlos y las diferencias clave entre ellos. Con esta base, estarás preparado para manejar datos de manera más eficiente en R. En la próxima sección, exploraremos matrices y arreglos, que son extensiones de los conceptos que hemos cubierto aquí.
Programación en R: De Principiante a Avanzado
Módulo 1: Introducción a R
- Introducción a R y RStudio
- Sintaxis Básica de R
- Tipos y Estructuras de Datos
- Operaciones y Funciones Básicas
- Importación y Exportación de Datos
Módulo 2: Manipulación de Datos
- Vectores y Listas
- Matrices y Arreglos
- Data Frames
- Factores
- Manipulación de Datos con dplyr
- Manipulación de Cadenas
Módulo 3: Visualización de Datos
- Introducción a la Visualización de Datos
- Gráficos Base R
- Fundamentos de ggplot2
- ggplot2 Avanzado
- Visualizaciones Interactivas con plotly
Módulo 4: Análisis Estadístico
- Estadísticas Descriptivas
- Distribuciones de Probabilidad
- Pruebas de Hipótesis
- Correlación y Regresión
- ANOVA y Pruebas Chi-Cuadrado
Módulo 5: Manejo Avanzado de Datos
- Manejo de Fechas y Tiempos
- Reestructuración de Datos
- Trabajo con Grandes Conjuntos de Datos
- Web Scraping
- APIs y JSON
Módulo 6: Conceptos Avanzados de Programación
- Escritura de Funciones
- Depuración y Manejo de Errores
- Programación Orientada a Objetos en R
- Programación Funcional
- Computación Paralela
Módulo 7: Aprendizaje Automático con R
- Introducción al Aprendizaje Automático
- Preprocesamiento de Datos
- Aprendizaje Supervisado
- Aprendizaje No Supervisado
- Evaluación y Ajuste de Modelos
Módulo 8: Temas Especializados
- Análisis de Series Temporales
- Análisis de Datos Espaciales
- Minería de Textos y Procesamiento de Lenguaje Natural
- Bioinformática con R
- Análisis de Datos Financieros
