【发布时间】:2019-11-24 22:35:14
【问题描述】:
我的问题是为什么下面的代码
list1 <- list()
list1[[1]] <- c()
list1[[1]] <- c(list1[[1]], 7)
显示错误
list1[[1]] 中的错误:下标超出范围
以及为什么下面的代码
vector1 <- c()
vector1 <- c(vector1, 7)
有效吗?我想做这样的事情
for (i in c(1,2,3)){
for (j in c(1,2,3)){
list1[[i]].append(list3[[i]], j)
}
}
【问题讨论】:
-
一个选项是
list1 <- vector('list', 1) -
这个问题不是很清楚。无论如何,列表和向量都没有针对追加进行优化。那是 R 中的
O(n)操作,它通过附加二次复杂度来生成构建列表/向量的循环。预分配要好得多。 -
akrun 和 John Coleman 感谢 cmets。