R中数组每个矩阵的平均值是什么意思?

5

我需要计算一个n维数组中每个矩阵的平均值。由于我是R语言的新手,希望有人能帮助我。

例如:

M = 4
m = array(1:10, dim= c(10, 1, M))
m
z = matrix(NA, M,1)
for (i in 1:z){
for (j in 1:z){
z[i, j] = mean(m[ , , i])
}
}
z

我尝试了上述方法,但是它是不正确的。


2个回答

4

1) 应用 尝试使用 apply

apply(m, 3, mean)
## [1] 5.5 5.5 5.5 5.5

2) 循环(loop) 或者使用循环来实现:

n <- dim(m)[3]
result <- numeric(n)
for(i in 1:n) result[i] <- mean(m[,,i])
result
## [1] 5.5 5.5 5.5 5.5

3) reshape或将其重新塑造成矩阵并取列均值。 n来自上面。

解释:这个步骤是将数据重新排列成矩阵形式,然后计算每一列的平均值。代码中的变量n在之前已经定义过了。
colMeans(matrix(m,, n))
## [1] 5.5 5.5 5.5 5.5

0

谢谢,但我正在寻找数组中每个矩阵的平均值,因为我在上面的数组中有4个矩阵,所以我的输出将是m [,,1],m [,,2],m [,,3],m [,,4]的平均值。 - Kritika Rajain
我明白了,我修改了你现有代码的一部分,为数组提供了逐元素平均值:z = matrix(NA, M,1) for (i in 1:length(z)){ z[i] = mean(m[, , i]) } z - Karan RK Raj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接