[R] Function modification: how to calculate values for every combination?
Paul Smith
phhs80 at gmail.com
Sun Sep 2 13:02:06 CEST 2007
On 9/2/07, Lauri Nikkinen <lauri.nikkinen at iki.fi> wrote:
> 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?
Try the following code and adapt it to fill the matrix:
fun <- function (x, y) {
a <- log(10)*y
b <- log(15)*x
extr <- a-b
extr
}
x <- c(1,2,3)
y <- c(4,5,6)
combs <- expand.grid(x,y)
for (i in 1:nrow(combs))
cat(fun(combs[i,1],combs[i,2]),"\n")
Paul
More information about the R-help
mailing list