执行for循环时存储数组

时间:2013-12-18 11:26:22

标签: arrays r for-loop

我有一个像这样执行200次的功能

for (l in 1:200) {
fun.ction(paramter1=g, paramter2=h)$element->u[z,,]
}

u是一个数组:

u<-array(NA, dim=c(2000,150,7))

我知道它应该有正确的格式。 func.tion的元素也是具有相同尺寸的数组。因此,是否有一些方法可以使用u生成的数组填充200次运行中的每一次运算中的数组fun.ction()$element?我试图通过列表(u[[z]])使用索引。它保存了数组,但作为一个列表,以便我以后无法访问我需要的元素。我感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我不确定你想要什么,但如果你只想存储200个维度数组(2000,150,7),你可以制作另一个第四维为200的数组。

storage.array <- array(dim=c(2000,150,7, 200))

然后将您的(2000,150,7)数组存储在第四维:

for (i in 1:200){ 
                storage.array[,,,i] <- 
                                     fun.ction(paramter1=g, paramter2=h)$element}

然后你可以通过以下方式访问每个第i个数组:

storage.array[,,,i]

但我想这对R来说太大了,至少它在我的电脑里。

使用较小阵列可以轻松复制的示例:

storage.array <- array(dim=c(20,2,7, 200))

fun.ction <- function(parameter1, parameter2){
  array(rnorm(140, parameter1, parameter2), dim=c(20,2,7))
}

for (i in 1:200){
  storage.array[,,,i]<- fun.ction(10, 10)
}

但正如罗兰和托马斯所说,你应该让你的代码可以重现并正确定义你想要的东西,这样就更容易回答而不试图猜出你的问题是什么。

祝你好运