在R中的多维数组上使用apply

在R中的多维数组上使用apply,r,R,我想知道如何在多维数组上使用apply。我有如下几点: A <- array(0, c(2, 2, 5)) for(i in 1:5) { A[, , i] <- matrix(rnorm(4), 2, 2) } AA.意味着完美!它就在数组的帮助文件中,但直到你指出它,我才看到它,甚至看过它。非常感谢。一般来说,apply的margin参数应该是要保留的维度向量,而不是折叠的维度向量。关于:mean.data.frame(a)?@ncray,@mbq:这符合R gotcha的

我想知道如何在多维数组上使用apply。我有如下几点:

A <- array(0, c(2, 2, 5))
for(i in 1:5) {
  A[, , i] <- matrix(rnorm(4), 2, 2)
}

A
A.意味着完美!它就在数组的帮助文件中,但直到你指出它,我才看到它,甚至看过它。非常感谢。一般来说,
apply
margin
参数应该是要保留的维度向量,而不是折叠的维度向量。关于:mean.data.frame(a)?@ncray,@mbq:这符合R gotcha的条件,因为
apply(,margin,)
指定了我们不想操作的维度,而不是我们要操作的维度。(为了直观起见,你可以自定义定义你自己的
apply_on()
,它指定你想要操作的维度。)@smci:不,我认为这是正确的,如果你有一个由m列组成的n行数组,并且你想对每行应用
mean
函数,那么你可以在第一个维度上(行:
apply(x,c(1),mean)
),然后返回一个n维向量(即行数)。但是,很难将其推广到更高维的数组中。。
B <- matrix(rnorm(10), 5, 2)
B.mean <- apply(B, 2, mean)
A.mean <- apply(A, 3, mean)
A.mean <- apply(A, c(1,2), mean)