Вы довольно близко. Как описано в этом связанном вопросе , все, что вам нужно, это функция Vectorize()
для преобразования вашей функции Fun()
в векторизованную версию:
VecFun <- Vectorize( Fun )
Тогда вы можете просто сделать:
outer(d.cols, r.cols, VecFun )
например. если вы определите
Fun <- function(a,b) sum(a+b)
Матрицы
и r,d
определены следующим образом:
J <- 5
D <- 3
R <- 4
d <- matrix( 1:(J*D), J, D)
r <- matrix( 1:(J*R), J, R)
тогда вы получите это:
> outer(d.cols, r.cols, VecFun)
1 2 3 4
1 30 55 80 105
2 55 80 105 130
3 80 105 130 155