Nombre del segundo nivel de lista anidada en R
Tengo una lista anidada similar a la siguiente simulada:
Lista1 <- lista (1:3, 4:7, 8:10)
Lista2 <- lista (2:5, 4:9, 19:23, 15:18)
Lista3 <- lista (1:5)
Lista_anidada <- lista (Lista1, Lista2, Lista3)
nombres (Lista_anidada) <- c ("primero", "segundo", "tercero")
El primer nivel tiene nombre, mientras que el segundo nivel no. Me gustaría asignar nombres al segundo nivel de la lista basándome en los nombres del primer nivel y los índices de posición, para que la estructura de esta lista se vea así:
Lista de 3
$ primero: Lista de 3
.. $ primero_1: int [1:3] 1 2 3
.. $ primero_2: int [1:4] 4 5 6 7
.. $ primero_3: int [1:3] 8 9 10
$ segundo: Lista de 4
.. $ segundo_1: int [1:4] 2 3 4 5
.. $ segundo_2: int [1:6] 4 5 6 7 8 9
.. $ segundo_3: int [1:5] 19 20 21 22 23
.. $ segundo_4: int [1:4] 15 16 17 18
$ tercero: Lista de 1
.. $ tercero_1: int [1:5] 1 2 3 4 5
¿Alguien sabe cómo resolver esto? Agradecería ayuda.
davy.ai
Para asignar nombres al segundo nivel de la lista anidada basándonos en los nombres y posiciones del primer nivel, podemos utilizar una combinación de la función
lapply
y la funciónpaste
.Aquí está el enfoque paso a paso:
lapply
.lapply
.paste
.Aquí está el código para lograr esto:
El código anterior primero asigna nombres al primer nivel de la lista anidada utilizando la función
paste
y la funciónnames
. Luego, recorre cada elemento del segundo nivel y les asigna nombres utilizando las funcionespaste
ynames
.La estructura resultante de la
nested_list
será la misma que la solicitada en la pregunta.