[R] Help with vectorization

R. Michael Weylandt michael.weylandt at gmail.com
Fri Apr 13 04:58:00 CEST 2012


Strange, that isn't the error I get:

>  mouter(wl, k1, k2, k3, FUN = function(w, k1, k2, k3) k1 *exp(k2 / (w + k3)))
Error in FUN(X, Y, ...) : argument "k2" is missing, with no default

Still, it's a problem with my mouter() function which was only tested
on binary operators (and then only really to teach myself to use
Recall()). This should work better:

`mouter` <- function(..., FUN){
    dotArgs <-as.list(do.call("expand.grid", list(..., KEEP.OUT.ATTRS= F)))
    names(dotArgs) <- names(formals(FUN))
    ans <- do.call(FUN, dotArgs)
    dim(ans) <- sapply(list(...), length)
    ans
}

This only works when the function can take all the elements at a time
though; I'm sure some fooling around could combine them nicely...it
seems to test right on your data, but I haven't checked it more
generally.

Michael

On Thu, Apr 12, 2012 at 3:29 PM, Filoche <pmassicotte at hotmail.com> wrote:
> Hi and thank you for your time.
>
> I got this error when trying your function.
>
> mouter(wl, k1, k2, k3, FUN = function(w, k1, k2, k3) k1 *exp(k2 / (w + k3)))
> "Error in k3/(w + k3) : 'k3' is missing"
>
> Regards,
> Phil
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Help-with-vectorization-tp4552638p4552833.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list