我想问,为什么我得到这个错误,而初始化例如向量的列表或一些其他类型的,我该如何解决?
> l <- list()
> l[[1]][1] <- 1
Error in `*tmp*`[[1]] : subscript out of bounds
这是整个代码,我需要的,其实我想这样的载体列表:
mcorrelation <- list()
for(k in 1:7){
for (ind in 1:7){
mcorrelation[[k]][ind] <- co$estimate
}
}
我应该初始化整个列表中,或者是有没有收到此错误的任何其他方式?
由于l
还没有AA载体,你不想指定列表的第一个元素的位置。 尝试:
l <- list()
l[[1]] <- 1
对于这个新的载体添加到特定的地方附加价值,最好是设置矢量了中提交值的已知长度(对于速度的原因,为什么在这里 )。 下面是一个例子循环:
n <- 100
l <- list()
l[[1]] <- NaN*seq(n)
for(i in seq(n)){
l[[1]][i] <- i
}
关于你提到的具体的例子:
k <- 7
ind <- 7
mcorrelation <- vector(mode="list", k)
for(i in seq(k)){
mcorrelation[[i]] <- NaN*seq(ind)
for (j in seq(ind)){
mcorrelation[[i]][j] <- rnorm(1)
}
}
mcorrelation
在“[”功能允许多个任务没有循环:
> y <- NULL
> y
NULL
> y[cbind(1:2, 1:2)] <- list( list(1,2), list(2,3))
> y
[[1]]
[[1]][[1]]
[1] 1
[[1]][[2]]
[1] 2
[[2]]
[[2]][[1]]
[1] 2
[[2]][[2]]
[1] 3