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)[边距]
Ifn>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