0

我希望我可以使用类似的东西:

 outer(A,B,myfun)

实现类似:

a<-matrix(nrow=nrow(A),ncol=nrow(B))
for(i in 1:nrow(A))
    for (j in 1:nrow(B))
    {
        a[i,j]<-myfun(A[i,],B[j,])
    }

有没有更好的办法?

4

1 回答 1

1

无法给出一般性答案,因为详细信息myfun可能会影响答案。

ares <- expand.grid(1:nrow(A), 1:nrow(B))
ares$res <- myfun(A[ares[,1], ), B[res[,2] ) 
# but may need mapply("myfun", A[ares[,1], ), B[res[,2] ) on which Vectorize is based
# or do.call(my.fun, ....)
a <- matrix(ares$res, nrow(A), nrow(B) )
于 2013-04-18T18:19:50.307 回答