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?