Aplicar función con exterior tomando las columnas de dos matrices como elementos de interés

Considerar matricesd yr condim(d) = J x D ydim(r) = J x R. Deje que la diversión (a, b) sea una función que toma dos vectores de la misma longitud y devuelve algún número.
Quiero tratar las columnas ded yr respectivamente como mis unidades de interés y aplicarouter a ellos.

l siguiente código logra esto mediante la creación de listas de las columnas ded yr y luego usando ambosouter ysapply:

d.cols <- split(d, col(d))
r.cols <- split(r, col(r))
outer(d.cols, r.cols,
      function(x,y) {
           sapply(seq_along(x),
                 function(i) {
                     Fun(x[[i]], y[[i]]) })} )

El código hace lo que quiero y es relativamente eficiente, pero es torpe y poco claro. ¿Hay una mejor manera de lograr lo que estoy tratando de alcanzar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta