使用列表保存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
。我们可以在循环本身中得到平均值。检查更新的答案。