Arrays R应用数组输出维度

Arrays R应用数组输出维度,arrays,r,matrix,apply,Arrays,R,Matrix,Apply,关于这个问题: 如果我创建以下数组和矩阵: a <- array(1, dim=c(2,2,3)) b <- matrix(c(1,1,1,1), nrow=2) 为什么这两件事给出了不同的答案?应用(a,3,*,b)的结果维度是43,因为根据文档,请参见?应用: 如果对FUN的每次调用都返回一个长度为n的向量,那么apply将返回一个维度数组c(n,dim(X)[边距]Ifn>1 在这种情况下,每次调用FUN都会返回一个长度为4的向量,并且MARGIN=3的维度是3。请注意,ap

关于这个问题:

如果我创建以下数组和矩阵:

a <- array(1, dim=c(2,2,3))
b <- matrix(c(1,1,1,1), nrow=2)

为什么这两件事给出了不同的答案?

应用(a,3,*
,b)
的结果维度是
43
,因为根据文档,请参见
?应用

如果对
FUN
的每次调用都返回一个长度为
n
的向量,那么
apply
将返回一个维度数组
c(n,dim(X)[边距]
If
n>1

在这种情况下,每次调用
FUN
都会返回一个长度为
4
的向量,并且
MARGIN=3
的维度是
3
。请注意,
apply
中的
FUN
每次调用的结果都强制为
向量
而不是
矩阵

现在,使用
newa[]
> dim(apply(a, 3, `*`, b))
[1] 4 3
> newa <- array(0, dim=c(2,2,3))
> newa[] <- apply(a, 3, `*`, b)
> dim(newa)
[1] 2 2 3