Dentro de los objetos de R las listas se puede pensar como un vector donde, cada elemento es un objeto y estos pueden ser de tipos totalmente diferente. Conjunto de vectores
li<-as.list(as.list(seq(1,50, 4))) # Convierte una lista una repetición de de 1 a 50 de 4 en 4
li
## [[1]]
## [1] 1
##
## [[2]]
## [1] 5
##
## [[3]]
## [1] 9
##
## [[4]]
## [1] 13
##
## [[5]]
## [1] 17
##
## [[6]]
## [1] 21
##
## [[7]]
## [1] 25
##
## [[8]]
## [1] 29
##
## [[9]]
## [1] 33
##
## [[10]]
## [1] 37
##
## [[11]]
## [1] 41
##
## [[12]]
## [1] 45
##
## [[13]]
## [1] 49
# ...
length(li)
## [1] 13
# Accediendo a elementos de una lista
li[[1]]
## [1] 1
li[[1]]<-"hola"
li[[4]]<-FALSE
li[[5]]<-pi
li
## [[1]]
## [1] "hola"
##
## [[2]]
## [1] 5
##
## [[3]]
## [1] 9
##
## [[4]]
## [1] FALSE
##
## [[5]]
## [1] 3.141593
##
## [[6]]
## [1] 21
##
## [[7]]
## [1] 25
##
## [[8]]
## [1] 29
##
## [[9]]
## [1] 33
##
## [[10]]
## [1] 37
##
## [[11]]
## [1] 41
##
## [[12]]
## [1] 45
##
## [[13]]
## [1] 49
Listas con valores de varios tipos y con nombres de elementos
# ? list
mi.lista <- list(a = 1:3, b = c("hola", "adiós"))
mi.lista$z <- matrix(1:4, 2, 2)
mi.lista
## $a
## [1] 1 2 3
##
## $b
## [1] "hola" "adiós"
##
## $z
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
mi.lista$a
## [1] 1 2 3
mi.lista$b
## [1] "hola" "adiós"
mi.lista$z
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
mi.lista$z[1,] # El renglón uno de la lista de nombre de elemento z
## [1] 1 3
mi.lista$z[,2] # Todos los renglones de la columan 2
## [1] 3 4
creando una lista con enfoque práctico
mi.lista <- list(hombre = "Pedro", mujer = "María", casados = TRUE, numero.hijos = 4, edad.hijos = c(4, 7, 9, 2), nombre.hijos=c('Hugo', 'Paco', 'Luis', 'Mary'))
mi.lista
## $hombre
## [1] "Pedro"
##
## $mujer
## [1] "María"
##
## $casados
## [1] TRUE
##
## $numero.hijos
## [1] 4
##
## $edad.hijos
## [1] 4 7 9 2
##
## $nombre.hijos
## [1] "Hugo" "Paco" "Luis" "Mary"
mi.lista$hombre # [1]
## [1] "Pedro"
mi.lista$mujer # [2]
## [1] "María"
mi.lista$casados # [3]
## [1] TRUE
mi.lista$numero.hijos # [4]
## [1] 4
mi.lista$edad.hijos # [5]
## [1] 4 7 9 2
mi.lista$nombre.hijos # [6]
## [1] "Hugo" "Paco" "Luis" "Mary"
# Acceesando datos a trav[es de corchetes []
mi.lista[c("hombre", "numero.hijos")]
## $hombre
## [1] "Pedro"
##
## $numero.hijos
## [1] 4
mi.lista[c("hombre", "mujer", "casados")]
## $hombre
## [1] "Pedro"
##
## $mujer
## [1] "María"
##
## $casados
## [1] TRUE
mi.lista[c(1,4)] # El vector 1 y 4
## $hombre
## [1] "Pedro"
##
## $numero.hijos
## [1] 4
mi.lista[c(-1,-4)] # No mostrar ni el 1 ni el 4
## $mujer
## [1] "María"
##
## $casados
## [1] TRUE
##
## $edad.hijos
## [1] 4 7 9 2
##
## $nombre.hijos
## [1] "Hugo" "Paco" "Luis" "Mary"