首页 > 解决方案 > 是否适合使用列表在 R 中保存第 i 个结果?

问题描述

向量tmpi第 - 个结果存储在 for 循环中。在for-loop我需要计算mean()每列sim变量的函数之后。目前,我使用列表并将树命令应用于列表: t()、、matrix()unlist()

我的代码如下

m   <- 5; n = 3
tmp <- numeric(n); tmp
sim <- list(); sim

set.seed(1)

for(i in 1:m){ 
# ...
tmp      <- rnorm(n)
sim[[i]] <- tmp
# ...
} # i

xx <- t(matrix(unlist(sim), n, m)); 
mean(xx[,1]);     mean(xx[,2]);     mean(xx[,3])

问题。是否适合在这里使用列表并在之后对其应用树命令for-loop

标签: rfor-loop

解决方案


我们可以m*n一起生成随机数,将它们存储在一个矩阵中,并使用colMeans.

colMeans(matrix(rnorm(m*n), m, n))

如果循环中有很多无法转义的函数,我们可以直接存储mean每次迭代的函数temp

m   <- 5; n = 3
tmp <- numeric(m)

for(i in 1:m){ 
  # ...
  tmp[i] <- mean(rnorm(n))
  # ...
}

tmp

推荐阅读