R 复制列表以创建列表列表列表
我正在尝试创建具有以下(嵌套)结构的列表:R 复制列表以创建列表列表列表,r,list,nested-lists,R,List,Nested Lists,我正在尝试创建具有以下(嵌套)结构的列表: 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
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
返回:
> 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行为有关,您希望在rep之前嵌套:
rep(list(fred),5)
str
输出:
List of 5
$ :List of 2
..$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10
..$ name : chr "squash"
$ :List of 2
..$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10
..$ name : chr "squash"
$ :List of 2
..$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10
..$ name : chr "squash"
$ :List of 2
..$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10
..$ name : chr "squash"
$ :List of 2
..$ happy: int [1:10] 1 2 3 4 5 6 7 8 9 10
..$ name : chr "squash"
您可以使用
复制:
l <- replicate(5, list(a=NA,b=NA), simplify=FALSE)
l这是我一个人干的还是非常不直观?感谢您的解决方案。@AriB.Friedman——如果您比较rep(1:2,5)
和rep(list(1:2,5)
,并且记住列表实际上是一种向量,那么这可能更有意义。这有用吗?@JoshO'Brien是的,确实有用。你知道一种复制现有对象结构的方法吗?例如,我有一个包含多个嵌套级别的列表,我希望使用空版本来存储结果,每个嵌套元素使用相同的名称。也许有一种方法可以删除整个对象中的所有数据,只留下结构及其元素名?
l <- replicate(5, list(a=NA,b=NA), simplify=FALSE)