我正在尝试创建一个具有以下(嵌套)结构的列表:
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
我想通过rep
或类似的方式来实现这一点,因为我要创建一堆空列表,稍后我会填充它们。(我知道可以通过引用下一个索引来扩展列表,但在两层深度索引时无法使用)。我认为可以使用
rep
来实现,但似乎行不通。?rep
给出了以下示例:fred <- list(happy = 1:10, name = "squash")
rep(fred, 5)
返回结果如下:
> 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"
换句话说,它将列表扁平化。我也尝试过
list(rep(fred,5))
,但同样失败了。如何复制一个列表的列表?
rep(1:2, 5)
和rep(list(1:2), 5)
进行比较,同时记住列表确实是向量的一种类型,那么这可能更有意义。这样有帮助吗? - Josh O'Brien