我有一个矩阵列表,my_list[[1]]
由矩阵组成,my_list[[2]]
包含另一个矩阵,依此类推。我想在循环中嵌入这个列表,这样对于循环的每次迭代,我都有一个不同的my_list和不同的矩阵,并希望以后能够访问它们。有什么方法可以在R中做到这一点吗?例如,创建一个数组(大小=循环的迭代次数),并且该数组的每个索引将具有不同的矩阵列表。或类似的东西。我该如何访问它。有人可以帮我这个吗?我非常感谢你的帮助。我环顾四周但却无法找到办法。列表列表似乎是一个选项,我试图尝试一次迭代,但它给出了这个错误:
> nes <- list()
> nes[[1]] <- append(nes[[1]], my_list[[1]])
Error in nes[[1]] : subscript out of bounds
如果有人能帮助我,那会很棒。
编辑: 基本上我所拥有的是一个称为粒子的初始列表。像这样:
for (k in 1:10)
{
# three centroids; k = 3
particle[[k]] <- rbind(features.dataf[sample(1:10, 1),2:4],
features.dataf[sample(1:10, 1),2:4],
features.dataf[sample(1:10, 1),2:4])
row.names(particle[[k]]) <- c(1,2,3)
}
Then I run this loop again. With an extra outer loop.
for (n in 1:30) {
for (k in 1:10) {
###some calculations
### create a vector f[k] with an f value for each k (calculated according to some formula)
pbestFitness[n,k] <- f[k] ##create a nXk dataframe that stores the f[k] value for every iteration of n
### over here I want to create a list of lists
}
}
在上面的代码中,我创建了列表列表,这样对于外循环的每次迭代,我都存储了一个粒子[[k]]矩阵。 任何粒子[[k]]的形式如下:
[,1] [,2] [,3]
[1,] 0.96436532 0.8958297 0.6089338
[2,] 0.08555853 0.7762849 0.6647247
[3,] 0.30792817 0.8061227 0.5099790
如果我尝试访问这个新的列表列表(nes),那么所需的输出将是这样的,它的nes [[n]]值应该有一个包含k个矩阵的列表。