Ejercicios de manejo de estructuras de datos básicas en R.

Ejercicio 1

1. Crea una lista llamada acciones que contenga la siguiente información en vectores: apple: 120, 125, 130; google: 1800, 1850, 1900 y amazon = 3200, 3300, 3400. Estos vectores representan los precios de cierre de las acciones de estas empresas en tres días consecutivos. Asigna nombres a los elementos de la lista según el nombre de la empresa.

Apple <- c(120, 125, 130)
Google <- c(1800, 1850, 1900)
Amazon <- c(3200, 3300, 3400)

Acciones <- list(Apple = Apple,
                 Google = Google,
                 Amazon = Amazon)
print(Acciones)
## $Apple
## [1] 120 125 130
## 
## $Google
## [1] 1800 1850 1900
## 
## $Amazon
## [1] 3200 3300 3400

2. Añade un nuevo elemento a la lista de acciones que sea un vector con los precios de cierre de las acciones de Microsoft en los mismos tres días: Microsoft: 210, 215, 220.

Acciones$Microsoft <- c(210, 215, 220)
print(Acciones$Microsoft)
## [1] 210 215 220
#Lista con el nuevo elemento añadido
print(Acciones)
## $Apple
## [1] 120 125 130
## 
## $Google
## [1] 1800 1850 1900
## 
## $Amazon
## [1] 3200 3300 3400
## 
## $Microsoft
## [1] 210 215 220

3. Extrae el segundo elemento del vector google que está dentro de la lista acciones

Acciones$Google[2]
## [1] 1850

Ejercicio 2

1. Crea una nueva lista llamada indicadores que contenga los siguientes objetos: pib = 30000, inflación = c(2.5, 3.0, 3.5), desempleo = matrix(c(5.0, 5.5, 6.0, 4.5, 4.0, 3.5), nrow = 2) y deuda = list(pública = 60, privada = 40). Estos objetos representan el producto interno bruto (PIB), la inflación, el desempleo y la deuda de un país en millones de dólares. Muestra el contenido de la lista.

PIB <- 30000
Inflacion <- c(2.5, 3.0, 3.5)
Desempleo <- matrix(c(5.0, 5.5, 6.0, 4.5, 4.0, 3.5), nrow = 2)
Deuda <- list(Publica = 60, Privada = 40)

Indicadores <- list(PIB = PIB,
                    Inflacion = Inflacion,
                    Desempleo = Desempleo,
                    Deuda = Deuda)
print(Indicadores)
## $PIB
## [1] 30000
## 
## $Inflacion
## [1] 2.5 3.0 3.5
## 
## $Desempleo
##      [,1] [,2] [,3]
## [1,]  5.0  6.0  4.0
## [2,]  5.5  4.5  3.5
## 
## $Deuda
## $Deuda$Publica
## [1] 60
## 
## $Deuda$Privada
## [1] 40

2. Calcula el promedio de los elementos del tercer elemento de la lista indicadores c) A través de los comandos apropiados modifica el valor de la deuda pública en un 20% adicional al que ya tiene.

Promedio <- mean(Indicadores$Desempleo)
print(Promedio)
## [1] 4.75
# 20% adicicnal a la deuda pública
Indicadores$Deuda$Publica <- Indicadores$Deuda$Publica*1.20
print(Indicadores$Deuda)
## $Publica
## [1] 72
## 
## $Privada
## [1] 40

Ejercicio 3

1. Crea una lista llamada estudiantes que contenga los siguientes objetos: nombre = c(“Ana”, “Luis”, “Pedro”), edad = c(18, 19, 20) y notas = list(matematicas = c(8, 7, 9), historia = c(6, 8, 7), ingles = c(9, 10, 8)). Estos objetos representan el nombre, la edad y las notas de tres estudiantes en tres asignaturas.

Nombre <- c("Ana", "Luis", "Pedro")
Edad <- c(18, 19, 20)
Notas <- list(Matematica = c(8, 7, 9),
              Historia = c(6, 8, 7),
              Ingles = c(9, 10, 8))

Estudiantes <- list(Nombres = Nombre,
                    Edades = Edad,
                    Notas = Notas)
print(Estudiantes)
## $Nombres
## [1] "Ana"   "Luis"  "Pedro"
## 
## $Edades
## [1] 18 19 20
## 
## $Notas
## $Notas$Matematica
## [1] 8 7 9
## 
## $Notas$Historia
## [1] 6 8 7
## 
## $Notas$Ingles
## [1]  9 10  8

2. Modifica el nombre del primer estudiante por “Elena”.

Estudiantes$Nombres[1] <- "Elena"
print(Estudiantes$Nombres)
## [1] "Elena" "Luis"  "Pedro"

3. Añade un nuevo elemento a la lista estudiantes que sea un vector con los géneros de los estudiantes: genero = c(“F”, “M”, “NB”)

Estudiantes$Genero <- c("F", "M", "NB")
print(Estudiantes)
## $Nombres
## [1] "Elena" "Luis"  "Pedro"
## 
## $Edades
## [1] 18 19 20
## 
## $Notas
## $Notas$Matematica
## [1] 8 7 9
## 
## $Notas$Historia
## [1] 6 8 7
## 
## $Notas$Ingles
## [1]  9 10  8
## 
## 
## $Genero
## [1] "F"  "M"  "NB"

4. Cambia la nota de inglés del tercer estudiante por un 9.

Estudiantes$Notas$Ingles[3] <- 9
print(Estudiantes$Notas$Ingles)
## [1]  9 10  9

Ejercicio 4

1. Crea un Data Frame llamado ventas_tiendas que contenga una matriz de datos de 5 por 5 donde las filas representan 5 tiendas distintas, ventas_tiendas <- data.frame(dia_1 = c(12, 10, 22, 16, 30), dia_2 = c(15, 11, 24, 17, 32), dia_3 = c(14, 13, 21, 19, 31), dia_4 = c(18, 12, 25, 20, 35), dia_5 = c(20, 15, 23, 18, 33), row.names = c(“Tienda A”, “Tienda B”, “Tienda C”, “Tienda D”, “Tienda E”))

Ventas_tiendas <- data.frame(Dia_1 = c(12, 10, 22, 16, 30),
                             Dia_2 = c(15, 11, 24, 17, 32),
                             Dia_3 = c(14, 13, 21, 19, 31),
                             Dia_4 = c(18, 12, 25, 20, 35),
                             Dia_5 = c(20, 15, 23, 18, 33),
                  row.names = c("Tienda A", "Tienda B", "Tienda c", "Tienda D", "Tienda E"))
print(Ventas_tiendas)
##          Dia_1 Dia_2 Dia_3 Dia_4 Dia_5
## Tienda A    12    15    14    18    20
## Tienda B    10    11    13    12    15
## Tienda c    22    24    21    25    23
## Tienda D    16    17    19    20    18
## Tienda E    30    32    31    35    33

2. Muestra en pantalla el valor ubicado en la fila 3, columna 4 (las ventas de la “Tienda C” en el dia_4).

Ventas_tiendas[3, 4]
## [1] 25

3. Muestra los valores de todas las tiendas únicamente para los días dia_2 y dia_5.

Ventas_tiendas[ , c("Dia_2", "Dia_5")]
##          Dia_2 Dia_5
## Tienda A    15    20
## Tienda B    11    15
## Tienda c    24    23
## Tienda D    17    18
## Tienda E    32    33

4. Cambia las ventas de la “Tienda B” en el dia_1 por un valor de 14.

Ventas_tiendas$Dia_1[2] <- 14
print(Ventas_tiendas$Dia_1)
## [1] 12 14 22 16 30
# Todo el data frame con el dato cambiado
print(Ventas_tiendas)
##          Dia_1 Dia_2 Dia_3 Dia_4 Dia_5
## Tienda A    12    15    14    18    20
## Tienda B    14    11    13    12    15
## Tienda c    22    24    21    25    23
## Tienda D    16    17    19    20    18
## Tienda E    30    32    31    35    33

5. Incrementa en un 15% todos los valores registrados en la fila de la “Tienda E”.

Ventas_tiendas[5, ] <- Ventas_tiendas[5, ] * 1.15
print(Ventas_tiendas[5, ])
##          Dia_1 Dia_2 Dia_3 Dia_4 Dia_5
## Tienda E  34.5  36.8 35.65 40.25 37.95

6. Reemplaza toda la columna dia_3 multiplicando sus valores actuales por 2.

Ventas_tiendas[ ,3] <- Ventas_tiendas[ ,3] * 2
print(Ventas_tiendas$Dia_3)
## [1] 28.0 26.0 42.0 38.0 71.3
# Data frame con los valores cambiados
print(Ventas_tiendas)
##          Dia_1 Dia_2 Dia_3 Dia_4 Dia_5
## Tienda A  12.0  15.0  28.0 18.00 20.00
## Tienda B  14.0  11.0  26.0 12.00 15.00
## Tienda c  22.0  24.0  42.0 25.00 23.00
## Tienda D  16.0  17.0  38.0 20.00 18.00
## Tienda E  34.5  36.8  71.3 40.25 37.95