"Dims [producto xx] no coincide con la longitud del error de objeto [xx]" al usar la función R `externa`

x <- 1:9
names(x) <- paste0("x",x)
y <- 2:5
names(y) <- paste0("y",y)

fun1      <-function(a, b) {paste(class(a),b, sep = "**")} #works
funError  <-function(a, b) {paste(class(a),class(b), sep = "**")} #does not work with outer
funNoError<-function(a, b) {paste(a,class(a),class(b),b, sep = "**")}  #works with outer  

funError(1,2) #is a valid function
outer(x, y, "funError") # fails
outer(x, y, "funNoError") # works

Q1: Por queouter(x, y, "funError") no trabajo

Error en dim (robj) <- c (dX, dY): dims [producto 36] no coincide con la longitud del objeto [1]

Q2: Por queouter(x, y, "funNoError") trabajo ? Es bastante similar.

La única diferencia que puedo ver es que cada "resultado" defunError es idéntico "numeric**numeric").

Si el problema es tener el mismo valor todo el tiempo: ¿Por qué funciona esto aquí?

outer(rep(0,7), 1:10, "^")

Está bien, lo entiendo:

lol  <- function(a,b) {"lol"}
lol_v<- Vectorize(lol)

outer(x, y, "lol")   # fails with same Error
outer(x, y, "lol_v") # works as expected

Respuestas a la pregunta(2)

Su respuesta a la pregunta