我希望我可以使用类似的东西:
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,])
}
有没有更好的办法?
我希望我可以使用类似的东西:
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,])
}
有没有更好的办法?
无法给出一般性答案,因为详细信息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) )