Пример
func <- function(x,y) {sqrt(x^2+y^2)}
v1 <- c(1,3,5)
v2 <- c(0,-4,-12)
ret <- outer(v1,v2,"func")
И тогда у вас есть
> ret
[,1] [,2] [,3]
[1,] 1 4.123106 12.04159
[2,] 3 5.000000 12.36932
[3,] 5 6.403124 13.00000
или если вы хотите именно то, что будут делать ваши циклы for
> as.vector(t(ret))
[1] 1.000000 4.123106 12.041595 3.000000 5.000000 12.369317 5.000000
[8] 6.403124 13.000000