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
funErro
I think this comes because the resulting matrix from outer expects to be the same dimensions as your inputs, however, class(a) is only length 1, therefor the matrix dimensions do not match. Try
funError2 <- function(a,b){paste(rep(class(a), length(a)),rep(class(b), length(b)), sep = "**")}
outer(x,y, "funError2")
#> y2 y3 y4
#> x1 "integer**integer" "integer**integer" "integer**integer"
#> x2 "integer**integer" "integer**integer" "integer**integer"
#> x3 "integer**integer" "integer**integer" "integer**integer"
#> x4 "integer**integer" "integer**integer" "integer**integer"
#> x5 "integer**integer" "integer**integer" "integer**integer"
#> x6 "integer**integer" "integer**integer" "integer**integer"
#> x7 "integer**integer" "integer**integer" "integer**integer"
#> x8 "integer**integer" "integer**integer" "integer**integer"
#> x9 "integer**integer" "integer**integer" "integer**integer"
#> y5
#> x1 "integer**integer"
#> x2 "integer**integer"
#> x3 "integer**integer"
#> x4 "integer**integer"
#> x5 "integer**integer"
#> x6 "integer**integer"
#> x7 "integer**integer"
#> x8 "integer**integer"
#> x9 "integer**integer"
Created on 2018-09-13 by the reprex package (v0.2.0).