# [R] outer() function

Gabor Grothendieck ggrothendieck at gmail.com
Thu Mar 23 22:44:06 CET 2006

```This is a FAQ:

http://cran.r-project.org/doc/manuals/R-FAQ.html#Why-does-outer_0028_0029-behave-strangely-with-my-function_003f

On 3/23/06, Kyle LaMalfa <kylelamalfa at gmail.com> wrote:
> Greetings R-help community,
>
> I am relatively new to R, which may be why I am having trouble
> understanding this problem.  I am trying to use outer() to generate a
> graphable surface of a function.  If there is a better way to do this,
> I would appreciate the insight.  Otherwise, could someone suggest a
> method to get the outer() function to work here?
>
> Below is my simplified R program.  Further down is the output.
>
> Kyle
>
> ###################
>
>        data <- c(0, 1, 2, 3)
>        x <- c(0,2,4)
>        y <- c(0,1,2)
>
>        f <- function(x, y) sum(data*x)+y
>        f(0,0); f(2,0); f(4,0);
>        f(0,1); f(2,1); f(4,1);
>        f(0,2); f(2,2); f(4,2);
>        outer(x, y, f)
>
>        f <- function(x, y) x-x+y-y+force(sum(data^x))
>        outer(x, y, f)
>
> ##################################
>
> > data <- c(0, 1, 2, 3)
> > x <- c(0,2,4)
> > y <- c(0,1,2)
> >
> > f <- function(x, y) sum(data*x)+y
> > f(0,0); f(2,0); f(4,0);
>  0
>  12
>  24
> > f(0,1); f(2,1); f(4,1);
>  1
>  13
>  25
> > f(0,2); f(2,2); f(4,2);
>  2
>  14
>  26
> > outer(x, y, f)
>     [,1] [,2] [,3]
> [1,]   20   21   22
> [2,]   20   21   22
> [3,]   20   21   22
> Warning message:
> longer object length
>        is not a multiple of shorter object length in: data * x
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help