Estoy tratando de crear una lista con la siguiente estructura (anidada):Replicar una lista para crear una lista de listas
l <- list()
for(i in seq(5)) l[[i]] <- list(a=NA,b=NA)
> str(l)
List of 5
$ :List of 2
..$ a: logi NA
..$ b: logi NA
$ :List of 2
..$ a: logi NA
..$ b: logi NA
$ :List of 2
..$ a: logi NA
..$ b: logi NA
$ :List of 2
..$ a: logi NA
..$ b: logi NA
$ :List of 2
..$ a: logi NA
..$ b: logi NA
me gustaría hacerlo a través de rep
o similares, como lo Estoy creando un montón de listas en blanco que luego rellenaré (soy consciente de que puedo expandir una lista haciendo referencia a su siguiente índice, pero eso no funciona cuando indico dos profundidades).
Pensé que rep
funcionaba para esto, pero parece que no. ?rep
da el siguiente ejemplo:
fred <- list(happy = 1:10, name = "squash")
rep(fred, 5)
que devuelve:
> str(rep(fred, 5))
List of 10
$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10
$ name : chr "squash"
$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10
$ name : chr "squash"
$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10
$ name : chr "squash"
$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10
$ name : chr "squash"
$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10
$ name : chr "squash"
En otras palabras, se aplana la lista.
También he intentado list(rep(fred,5))
que también falla.
¿Cómo puedo replicar una lista de listas?
¿Es solo yo o es terriblemente no intuitivo? Gracias por la solución. –
@ AriB.Friedman - Puede tener más sentido si compara 'rep (1: 2, 5)' y 'rep (lista (1: 2), 5)' teniendo en cuenta que una lista ** realmente es ** un tipo de vector. ¿Eso ayuda? –
@ JoshO'Brien Sí, eso realmente. –