Всегда пожалуйста @Kalu

отрим матрицыd а такжеr с участиемdim(d) = J x D а такжеdim(r) = J x R, Пусть fun (a, b) будет функцией, которая принимает два вектора одинаковой длины и возвращает некоторое число.
Я хочу лечить столбцыd а такжеr соответственно как мои единицы интереса и применяютсяouter им.

Следующий код выполняет это путем создания списков столбцовd а такжеr а затем используя обаouter а такжеsapply:

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]]) })} )

Код делает то, что я хочу, и относительно эффективен, но неуклюж и неясен. Есть ли лучший способ достичь того, что я пытаюсь достичь?