3.7 Listas
Las listas son estructuras de datos primitivas. En teoría, los data frame y tibbles son estructuras internamente basadas en listas. En ellos, sus elementos son únicamente vectores de elementos que se comportan como columnas de las tablas cuando imprimidos el objeto.
Las listas propiamente dichas, las que creamos con la función list()
, son estructuras amigables, almacenando prácticamente toda clase de objetos: vectores, factores, matrices, data frames, tibbles, incluso otras listas.
Como se mencionó arriba, la función list()
permite crear listas no nombradas. Cada elemento adquiere como nombre un número correlativo:
# Creación de una lista no nombradas. Utilizaremos
# algunos objetos que hemos ido creando hasta aquí.
<- list(TB, DF, vector1, F2)
primeraLista
primeraLista# [[1]]
# # A tibble: 5 × 4
# Col1 Col2 Log Fct
# <int> <chr> <lgl> <fct>
# 1 1 Sit1 TRUE A
# 2 2 Sit1 TRUE B
# 3 3 Sit2 FALSE C
# 4 4 Sit2 FALSE B
# 5 5 Sit3 TRUE A
#
# [[2]]
# Col1 Col2 Log Fct
# 1 1 Sit1 TRUE A
# 2 2 Sit1 TRUE B
# 3 3 Sit2 FALSE C
# 4 4 Sit2 FALSE B
# 5 5 Sit3 TRUE A
#
# [[3]]
# [1] 1 2 3 4 5 6 7 8 9 10
#
# [[4]]
# [1] A B A A A A B A C C B
# Levels: B C A
Para crear una lista nombrada, se puede colocar cada elemento precedido con un nombre y el símbolo igual.
# Creación de una lista no nombradas. Utilizaremos
# algunos objetos que hemos ido creando hasta aquí.
<- list(TB = TB, DF = DF, vecThor = vector1, factor = F2)
L1
L1# $TB
# # A tibble: 5 × 4
# Col1 Col2 Log Fct
# <int> <chr> <lgl> <fct>
# 1 1 Sit1 TRUE A
# 2 2 Sit1 TRUE B
# 3 3 Sit2 FALSE C
# 4 4 Sit2 FALSE B
# 5 5 Sit3 TRUE A
#
# $DF
# Col1 Col2 Log Fct
# 1 1 Sit1 TRUE A
# 2 2 Sit1 TRUE B
# 3 3 Sit2 FALSE C
# 4 4 Sit2 FALSE B
# 5 5 Sit3 TRUE A
#
# $vecThor
# [1] 1 2 3 4 5 6 7 8 9 10
#
# $factor
# [1] A B A A A A B A C C B
# Levels: B C A
Resulta muy engorroso tener que colocar los nombres dado que las variables ya tienen uno, esto se puede solucionar si se usa la función lst()
de la librería dplyr.
<- dplyr::lst(TB, DF, vector1, F2)
L2
L2# $TB
# # A tibble: 5 × 4
# Col1 Col2 Log Fct
# <int> <chr> <lgl> <fct>
# 1 1 Sit1 TRUE A
# 2 2 Sit1 TRUE B
# 3 3 Sit2 FALSE C
# 4 4 Sit2 FALSE B
# 5 5 Sit3 TRUE A
#
# $DF
# Col1 Col2 Log Fct
# 1 1 Sit1 TRUE A
# 2 2 Sit1 TRUE B
# 3 3 Sit2 FALSE C
# 4 4 Sit2 FALSE B
# 5 5 Sit3 TRUE A
#
# $vector1
# [1] 1 2 3 4 5 6 7 8 9 10
#
# $F2
# [1] A B A A A A B A C C B
# Levels: B C A
Es más que seguro que en el futuro encontrarás ventajoso tener listas nombradas para el manejo de estructuras de datos.