for循环并应用于计算均值

时间:2018-01-30 22:41:06

标签: r list for-loop apply

我想计算列表中32个向量的均值。我认为这段代码应该可以胜任:

for(i in sequence(length(means16list))){
  mat.means16 <- apply(means16list, 1, mean)
}

其中means16list包含32个数字向量,mat.means16应包含均值。它是矩阵4,4并在前一步骤中定义。 也许我不明白循环是如何工作的。 有人可以帮忙吗?

干杯

2 个答案:

答案 0 :(得分:2)

每次都会覆盖

mat.means16,你应该制作一个列表并将结果存储在那里。

如果您发布示例数据,可能有更好的方法来执行此操作,我假设您需要矩阵的rowMeans()

results <- lapply(means16list, rowMeans)

答案 1 :(得分:1)

除非我误解,否则为什么不:

# Sample data
set.seed(2017);
means16list <- lapply(1:32, function(x) runif(10))

# Return a list of the sample means
lapply(means16list, mean);

# Return a vector of the sample means
sapply(means16list, mean);

我没有看到for循环的重点。 lapply / sapply将遍历列表中的每个元素,并将函数mean应用于该列表。