combinação de expand.grid e mapply?

Estou tentando criar uma variante demapply (chame-oxapply por enquanto) que combina a funcionalidade (mais ou menos) deexpand.grid emapply. Ou seja, para uma funçãoFUN e uma lista de argumentosL1, L2, L3, ... dounknown length, deve produzir uma lista de comprimenton1*n2*n3 (Ondeni é o comprimento da listai), resultado da aplicação deFUN para todas as combinações dos elementos da list

E seexpand.grid trabalhou para gerar listas de listas em vez de quadros de dados, pode-se usá-lo, mas tenho em mente que as listas podem ser listas de coisas que não necessariamente se encaixam em um quadro de dado

Esta função funciona bem se houver exatamente três listas para expandir, mas estou curioso sobre uma solução mais genérica. FLATTEN não é usado, mas posso imaginar queFLATTEN=FALSE geraria listas aninhadas em vez de uma única lista ...)

xapply3 <- function(FUN,L1,L2,L3,FLATTEN=TRUE,MoreArgs=NULL) {
  retlist <- list()
  count <- 1
  for (i in seq_along(L1)) {
    for (j in seq_along(L2)) {
      for (k in seq_along(L3)) {
        retlist[[count]] <- do.call(FUN,c(list(L1[[i]],L2[[j]],L3[[k]]),MoreArgs))
        count <- count+1
      }
    }
  }
  retlist
}

editar esqueceu de retornar o resultado. Pode-se resolver isso fazendo uma lista dos índices comcombn e indo de lá ...

questionAnswers(1)

yourAnswerToTheQuestion