# Ejercicio 1: Creación y exploración de vectores
ciudades <- c("Madrid", "Paris", "Roma", "Londres", "Berlin", "Lisboa", "Tokyo",
"New York", "Buenos Aires", "Mexico City", "Sydney", "Milan",
"Barcelona", "Los Angeles", "Amsterdam")
# Visualizar el vector
print(ciudades)
## [1] "Madrid" "Paris" "Roma" "Londres" "Berlin"
## [6] "Lisboa" "Tokyo" "New York" "Buenos Aires" "Mexico City"
## [11] "Sydney" "Milan" "Barcelona" "Los Angeles" "Amsterdam"
# Obtener la cantidad de elementos en el vector
cat("Cantidad de elementos en el vector: ", length(ciudades), "\n")
## Cantidad de elementos en el vector: 15
# Identificar posiciones donde aparece la letra "o"
posiciones_o <- grep("o", ciudades)
cat("Posiciones donde aparece la letra 'o': ", posiciones_o, "\n")
## Posiciones donde aparece la letra 'o': 3 4 6 7 8 9 10 13 14
# Ordenar el vector en orden alfabético ascendente
ciudades_ascendente <- sort(ciudades)
cat("Ciudades en orden alfabético ascendente: ", ciudades_ascendente, "\n")
## Ciudades en orden alfabético ascendente: Amsterdam Barcelona Berlin Buenos Aires Lisboa Londres Los Angeles Madrid Mexico City Milan New York Paris Roma Sydney Tokyo
# Ordenar el vector en orden alfabético descendente
ciudades_descendente <- sort(ciudades, decreasing = TRUE)
cat("Ciudades en orden alfabético descendente: ", ciudades_descendente, "\n")
## Ciudades en orden alfabético descendente: Tokyo Sydney Roma Paris New York Milan Mexico City Madrid Los Angeles Londres Lisboa Buenos Aires Berlin Barcelona Amsterdam
# Ejercicio 2: Notas de estudiantes
estudiantes <- c("Ana", "Carlos", "Luis", "María", "Sofía", "Pedro", "Juan",
"Lucía", "Diego", "Elena")
calificaciones <- c(7.5, 8.0, 4.5, 9.2, 6.8, 5.3, 3.9, 7.0, 4.2, 8.5)
# Visualizar los vectores
print(estudiantes)
## [1] "Ana" "Carlos" "Luis" "María" "Sofía" "Pedro" "Juan" "Lucía"
## [9] "Diego" "Elena"
print(calificaciones)
## [1] 7.5 8.0 4.5 9.2 6.8 5.3 3.9 7.0 4.2 8.5
# Suma total de las calificaciones
suma_notas <- sum(calificaciones)
cat("Suma total de las notas: ", suma_notas, "\n")
## Suma total de las notas: 64.9
# Nota promedio
promedio_notas <- mean(calificaciones)
cat("Nota promedio: ", promedio_notas, "\n")
## Nota promedio: 6.49
# Posiciones de las notas menores a 5
posiciones_menores_5 <- which(calificaciones < 5)
cat("Posiciones de las notas menores a 5: ", posiciones_menores_5, "\n")
## Posiciones de las notas menores a 5: 3 7 9
# Ordenar las calificaciones de menor a mayor
calificaciones_ordenadas <- sort(calificaciones)
cat("Calificaciones ordenadas de menor a mayor: ", calificaciones_ordenadas, "\n")
## Calificaciones ordenadas de menor a mayor: 3.9 4.2 4.5 5.3 6.8 7 7.5 8 8.5 9.2
# Ejercicio 3: Manipulación de vectores
vec1 <- 5:15
print(vec1)
## [1] 5 6 7 8 9 10 11 12 13 14 15
# Extraer los elementos en las posiciones 2, 4 y 6
elementos_extraidos <- vec1[c(2, 4, 6)]
cat("Elementos en las posiciones 2, 4 y 6: ", elementos_extraidos, "\n")
## Elementos en las posiciones 2, 4 y 6: 6 8 10
# Reemplazar el último elemento por 100
vec1[length(vec1)] <- 100
print(vec1)
## [1] 5 6 7 8 9 10 11 12 13 14 100
# Contar el número de elementos en el vector actualizado
num_elementos <- length(vec1)
cat("Número de elementos en el vector actualizado: ", num_elementos, "\n")
## Número de elementos en el vector actualizado: 11
# Ejercicio 4: Operaciones aritméticas y resumen de vectores
set.seed(123) # Fijar semilla para reproducibilidad
vec2 <- sample(10:50, 6)
vec3 <- sample(10:50, 6)
# Visualizar los vectores
print(vec2)
## [1] 40 24 23 12 46 48
print(vec3)
## [1] 34 35 36 14 48 37
# Sumar los vectores
suma_vectores <- vec2 + vec3
cat("Suma de vec2 y vec3: ", suma_vectores, "\n")
## Suma de vec2 y vec3: 74 59 59 26 94 85
# Multiplicar los vectores
producto_vectores <- vec2 * vec3
cat("Producto de vec2 y vec3: ", producto_vectores, "\n")
## Producto de vec2 y vec3: 1360 840 828 168 2208 1776
# Ejercicio 5: Subsetting y filtrado avanzado
vec5 <- 1:25
print(vec5)
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
# Filtrar valores mayores que 12 y menores que 20
filtro1 <- vec5[vec5 > 12 & vec5 < 20]
cat("Valores mayores que 12 y menores que 20: ", filtro1, "\n")
## Valores mayores que 12 y menores que 20: 13 14 15 16 17 18 19
# Filtrar valores divisibles entre 5
filtro2 <- vec5[vec5 %% 5 == 0]
cat("Valores divisibles entre 5: ", filtro2, "\n")
## Valores divisibles entre 5: 5 10 15 20 25
# Ejercicio 6: Operadores lógicos y operaciones con condiciones
temperaturas <- c(25, 30, 18, 22, 27, 33, 15, 29)
print(temperaturas)
## [1] 25 30 18 22 27 33 15 29
# Crear un vector lógico para temperaturas mayores a 20
es_mayor_20 <- temperaturas > 20
print(es_mayor_20)
## [1] TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE
# Calcular cuántas temperaturas son mayores a 20
num_mayor_20 <- sum(es_mayor_20)
cat("Número de temperaturas mayores a 20: ", num_mayor_20, "\n")
## Número de temperaturas mayores a 20: 6
# Reemplazar temperaturas menores a 20 con NA
temperaturas[temperaturas <= 20] <- NA
print(temperaturas)
## [1] 25 30 NA 22 27 33 NA 29
# Ejercicio 7: Aplicación de funciones
valores <- c(2, 4, 6, 8, 10, 12, 14, 16)
print(valores)
## [1] 2 4 6 8 10 12 14 16
# Calcular la raíz cuadrada de cada elemento
raices <- sqrt(valores)
print(raices)
## [1] 1.414214 2.000000 2.449490 2.828427 3.162278 3.464102 3.741657 4.000000
# Calcular el logaritmo natural de cada elemento
logaritmos <- log(valores)
print(logaritmos)
## [1] 0.6931472 1.3862944 1.7917595 2.0794415 2.3025851 2.4849066 2.6390573
## [8] 2.7725887
# Calcular la exponencial de cada elemento
exponenciales <- exp(valores)
print(exponenciales)
## [1] 7.389056e+00 5.459815e+01 4.034288e+02 2.980958e+03 2.202647e+04
## [6] 1.627548e+05 1.202604e+06 8.886111e+06
# Ejercicio 8: Ordenación y eliminación de elementos
vec6 <- c(18, 25, 12, 9, 40, 5, 22)
print(vec6)
## [1] 18 25 12 9 40 5 22
# Ordenar en orden ascendente
vec6_ascendente <- sort(vec6)
print(vec6_ascendente)
## [1] 5 9 12 18 22 25 40
# Ordenar en orden descendente
vec6_descendente <- sort(vec6, decreasing = TRUE)
print(vec6_descendente)
## [1] 40 25 22 18 12 9 5
# Eliminar el tercer y quinto elemento del vector
vec6_modificado <- vec6[-c(3, 5)]
print(vec6_modificado)
## [1] 18 25 9 5 22
# Ejercicio 9: Concatenación y creación de nuevos vectores
vec7 <- 1:6
print(vec7)
## [1] 1 2 3 4 5 6
vec8 <- 7:12
print(vec8)
## [1] 7 8 9 10 11 12
# Concatenar vec7 y vec8 en vec9
vec9 <- c(vec7, vec8)
print(vec9)
## [1] 1 2 3 4 5 6 7 8 9 10 11 12
# Calcular la cantidad de elementos en vec9
num_elementos <- length(vec9)
cat("El vector vec9 tiene", num_elementos, "elementos.\n")
## El vector vec9 tiene 12 elementos.
# Ejercicio 10: Subsetting avanzado y operaciones
vec10 <- c(10, 15, 20, 25, 30, 35, 40)
print(vec10)
## [1] 10 15 20 25 30 35 40
# Extraer los valores mayores a 20 y menores o iguales a 35
valores_extraidos <- vec10[vec10 > 20 & vec10 <= 35]
print(valores_extraidos)
## [1] 25 30 35
# Calcular la suma de los valores extraídos
suma_valores <- sum(valores_extraidos)
cat("La suma de los valores extraídos es:", suma_valores, "\n")
## La suma de los valores extraídos es: 90