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