Tarea 3: Ejercicios de manejo de estructuras de datos básicas en R.

Ejercicio 1

a) 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.

#Se crean los vectores
Apple <- c(120, 125, 130)
Google <- c(1800, 1850, 1900)
Amazon <- c(3200, 3300, 3400)

#Se crea la lista
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

b) Añade un nuevo elemento a la lista 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.

#Se crea un nuevo verctor
Microsoft<-c(210, 2015, 220)

#Se agrega a la lista

acciones <- list( "Apple" = Apple, "Google" = Google, "Amazon" = Amazon, "Mirosoft" = Microsoft)
print(acciones)
## $Apple
## [1] 120 125 130
## 
## $Google
## [1] 1800 1850 1900
## 
## $Amazon
## [1] 3200 3300 3400
## 
## $Mirosoft
## [1]  210 2015  220

c) Extrae el segundo elemento del vector google que está dentro de la lista acciones

objeto_extraer <- acciones[[2]][2]
print(objeto_extraer)
## [1] 1850

Ejercicio 2

a) Crea una nueva lista llamada indicadores que contenga los siguientes objetos: 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) y deuda = list(publica = 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.

#Se crean los elementos 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)

#Se crea la lista
indicadores<- list("PIB"=pib, "Dnflacion"=inflacion, "Desempleo"=desempleo, "Deuda"=deuda)
print(indicadores)
## $PIB
## [1] 30000
## 
## $Dnflacion
## [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

b) Calcula el promedio de los elementos del tercer elemento de la lista indicadores

#Se convierte la matriz en un vector
Vec_desempleo<-as.vector(indicadores$Desempleo)
promedio_desempleo<-mean(Vec_desempleo)
print(promedio_desempleo)
## [1] 4.75

c) A través de los comandos apropiados modifica el valor de la deuda publica en un 20% adicional al que ya tiene.

indicadores[[4]][[1]]<- (60*0.20)+60
print(indicadores)
## $PIB
## [1] 30000
## 
## $Dnflacion
## [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] 72
## 
## $Deuda$privada
## [1] 40

Ejercicio 3

a) 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.

#se crean los objetos
nombre <- c("Ana", "Luis", "Pedro")
edad <- c(18, 19, 20)
notas <- list(matematicas = c(8, 7, 9), historia = c(6, 8, 7), ingles = c(9, 10, 8))

#Se crea la lista
estudiantes <- list("Nombre"=nombre, "Edad"=edad, "Notas"=notas)
print(estudiantes)
## $Nombre
## [1] "Ana"   "Luis"  "Pedro"
## 
## $Edad
## [1] 18 19 20
## 
## $Notas
## $Notas$matematicas
## [1] 8 7 9
## 
## $Notas$historia
## [1] 6 8 7
## 
## $Notas$ingles
## [1]  9 10  8

b) Modifica el nombre del primer estudiante por “Elena”.

estudiantes[[1]][1] <-"Elena"

print(estudiantes)
## $Nombre
## [1] "Elena" "Luis"  "Pedro"
## 
## $Edad
## [1] 18 19 20
## 
## $Notas
## $Notas$matematicas
## [1] 8 7 9
## 
## $Notas$historia
## [1] 6 8 7
## 
## $Notas$ingles
## [1]  9 10  8

c) 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”)

# Crear elemento
genero <- c("F", "M", "NB")

length(estudiantes)<- 4
estudiantes[[4]]<-genero
names(estudiantes)<- c("Nombre", "Edad","Notas","Genero")

print(estudiantes)
## $Nombre
## [1] "Elena" "Luis"  "Pedro"
## 
## $Edad
## [1] 18 19 20
## 
## $Notas
## $Notas$matematicas
## [1] 8 7 9
## 
## $Notas$historia
## [1] 6 8 7
## 
## $Notas$ingles
## [1]  9 10  8
## 
## 
## $Genero
## [1] "F"  "M"  "NB"

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

estudiantes[[3]][[3]][3]<-9
print(estudiantes)
## $Nombre
## [1] "Elena" "Luis"  "Pedro"
## 
## $Edad
## [1] 18 19 20
## 
## $Notas
## $Notas$matematicas
## [1] 8 7 9
## 
## $Notas$historia
## [1] 6 8 7
## 
## $Notas$ingles
## [1]  9 10  9
## 
## 
## $Genero
## [1] "F"  "M"  "NB"

Ejercicio 4

a) Crea el objeto lista_4, a partir de la siguiente imagen:

#Se crean los elementos de la lista

a1<- list(a11<-(1:3),a12<-(4:6))
names(a1)<-c("a11","a12")
a2<-list(a21<-(7:9),a22<-(10:12))
names(a2)<-c("a21","a22")
a<-list(a1,a2)
names(a)<-c("a1","a2")
b1<-list(b11<-(13:15), b12<-(16:18))
names(b1)<-c("b11","b12")
b2<-list(b21<-(19:21),b22<-(22:24))
names(b2)<-c("b21","b22")
b<-list(b1,b2)
names(b)<-c("b1","b2")

#Se crea la lista
lista_4<-list(a,b)
names(lista_4)<-c("a","b")

b) Cambia el nombre de la lista “b1” a “sub_lista_b”

names(lista_4[[2]])<-c("sub_lista_b","b2")
print(lista_4)
## $a
## $a$a1
## $a$a1$a11
## [1] 1 2 3
## 
## $a$a1$a12
## [1] 4 5 6
## 
## 
## $a$a2
## $a$a2$a21
## [1] 7 8 9
## 
## $a$a2$a22
## [1] 10 11 12
## 
## 
## 
## $b
## $b$sub_lista_b
## $b$sub_lista_b$b11
## [1] 13 14 15
## 
## $b$sub_lista_b$b12
## [1] 16 17 18
## 
## 
## $b$b2
## $b$b2$b21
## [1] 19 20 21
## 
## $b$b2$b22
## [1] 22 23 24

c) Elimina el objeto “b22”

lista_4[[2]][[2]][[2]]<-NULL
print(lista_4)
## $a
## $a$a1
## $a$a1$a11
## [1] 1 2 3
## 
## $a$a1$a12
## [1] 4 5 6
## 
## 
## $a$a2
## $a$a2$a21
## [1] 7 8 9
## 
## $a$a2$a22
## [1] 10 11 12
## 
## 
## 
## $b
## $b$sub_lista_b
## $b$sub_lista_b$b11
## [1] 13 14 15
## 
## $b$sub_lista_b$b12
## [1] 16 17 18
## 
## 
## $b$b2
## $b$b2$b21
## [1] 19 20 21

d) Agrega la lista “c” dentro de lista_4, y agrégale a la lista “c” los elementos “c11”, con una matriz identidad de orden 3 y “c12” con una matriz de caracteres cuadrada de orden 2 vacía.

#se crea la lista c
c <- list(c11=diag(3), c12=matrix(data = "", nrow = 2, ncol = 2))
names(c)<- c("c11","c12")

#Se agrega a lista_4
length(lista_4)<-3
lista_4[[3]]<-c
names(lista_4)<- c("a","b","c")

print(lista_4)
## $a
## $a$a1
## $a$a1$a11
## [1] 1 2 3
## 
## $a$a1$a12
## [1] 4 5 6
## 
## 
## $a$a2
## $a$a2$a21
## [1] 7 8 9
## 
## $a$a2$a22
## [1] 10 11 12
## 
## 
## 
## $b
## $b$sub_lista_b
## $b$sub_lista_b$b11
## [1] 13 14 15
## 
## $b$sub_lista_b$b12
## [1] 16 17 18
## 
## 
## $b$b2
## $b$b2$b21
## [1] 19 20 21
## 
## 
## 
## $c
## $c$c11
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1
## 
## $c$c12
##      [,1] [,2]
## [1,] ""   ""  
## [2,] ""   ""

e) Muestra la captura de pantalla de tu sesión mostrando un esquema como el que aparece en el literal a) de este ejercicio

JuveYell