我需要计算一个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
我尝试了上述方法,但是它是不正确的。
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
来自上面。
colMeans(matrix(m,, n))
## [1] 5.5 5.5 5.5 5.5
我的理解是,mean
函数以1 x 1矩阵的形式提供其答案,我假设这就是您要寻找的,因为您没有提到按行或按列的平均值。
以下是有关该主题的一些详细信息,来自先前的帖子:如何在整个矩阵、数组或数据框中获取平均值、中位数和其他统计信息?
z = matrix(NA, M,1)
for (i in 1:length(z)){
z[i] = mean(m[, , i])
}
z
- Karan RK Raj