使用列表保存R中的第i个结果是否合适?

使用列表保存R中的第i个结果是否合适?,r,for-loop,R,For Loop,向量tmp将i-th结果存储在foor循环中。在for loop之后,我需要对sim变量的每一列计算mean()函数。目前,我对列表使用list和apply tree命令: 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
-th结果存储在foor循环中。在
for loop
之后,我需要对
sim
变量的每一列计算
mean()
函数。目前,我对列表使用list和apply tree命令:
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])

m我们可以一起生成
m*n
随机数,将它们存储在矩阵中,并使用
colMeans
获得每列的平均值

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

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

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

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

tmp

m您是否需要
lappy(sim,mean)
?此处仅以rnorm()为例。我在for循环中应用了一个数字函数。@Nick在for循环的
末尾是否需要
xx
。我们可以在循环本身中得到
平均值。检查更新的答案。