[R] Function modification: how to calculate values for every combination?

Gabor Grothendieck ggrothendieck at gmail.com
Sun Sep 2 18:01:25 CEST 2007


Just to add to this be sure you do have names if you want them
and read about vectorization in ?outer in case fun was just an
example and your actual fun is more complex:

x <- c(1,2,3)
names(x) <- x
y <- c(4,5,6)
names(y) <- y

outer(x, y, fun) # as in previous answer

# or
 outer(-log(15) * x, log(10) * y, "+")


On 9/2/07, Erich Neuwirth <erich.neuwirth at univie.ac.at> wrote:
> outer(x,y,fun)
>
> Lauri Nikkinen wrote:
> > Hello,
> >
> > I have a function like this:
> >
> > fun <- function (x, y) {
> >           a <- log(10)*y
> >           b <- log(15)*x
> >           extr <- a-b
> >           extr
> >           }
> >
> > fun(2,3)
> > [1] 1.491655
> >
> > x <- c(1,2,3)
> > y <- c(4,5,6)
> > fun(x, y)
> > [1] 6.502290 6.096825 5.691360
> >
> > How do I have to modify my function that I can calculate results using
> > every combination of x and y? I would like to produce a matrix which
> > includes the calculated values in every cell and names(x) and names(y)
> > as row and column headers respectively. Is the outer-function a way to
> > solution?
> >
> > Best regards,



More information about the R-help mailing list