我希望我可以使用类似的东西:
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,])
}
还有更好的方法吗?
答案 0 :(得分: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) )