将一个空向量添加到列表中。

6
在R语言中,当我向列表中添加一个空向量时,实际上并没有添加,如下所示:
a = list()
a[[1]] = c()
print(length(a))

在这种情况下,length(a)的输出结果是0。但是如果我将第二行改为a[[1]] = c(1),那么列表的长度将变为1,与期望的相同。在我的实现中,即使我向列表中添加一个空向量,我也需要更改列表的长度。有没有一种方法可以做到这一点?

1
a[[1]] = vector()就可以了。根据使用情况,您可能需要指定向量的模式。 c()返回NULL,这是不起作用的。 - dww
最好的做法是从一开始就构建一个正确大小的列表,例如 a <- list(NULL)a <- vector(1, mode = 'list'),以避免陷入第二个圈子 - alistaire
1个回答

5

使用vector()(逻辑向量)和character()等函数可以为希望保留为空的元素分配特定的类。我会使用NULL类。您可以使用[<-而不是[[<-]为NULL列表元素赋值。

a <- list()
a[1] <- list(NULL)
a
# [[1]]
# NULL
length(a)
# [1] 1

2
OP其实很接近了 - a[1] = list(c()) 也可以达到同样的效果。 - thelatemail

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接