On Wed, May 4, 2011 at 10:40 AM, Ravi Varadhan <rvarad...@jhmi.edu> wrote: > I too would like this (being an Indian!). > > Here is an example that came up just yesterday with regards to solving a > quadrature problem using the "cubature" package. The adaptIntegrate function > does not allow additional arguments via ... > > Uwe suggested a work around, but `Curry' would solve it nicely (and it also > tastes better!): > > Curry = function(FUN,...) { > .orig = list(...) > function(...) do.call(FUN,c(.orig, list(...))) > } > > require(cubature) > > f <- function(x, a) cos(2*pi*x*a) # a simple test function > > # this works > a <- 0.2 > adaptIntegrate(function(x, argA=a) f(x, a=argA), lower=0, upper=2) > > # but this doesn't work > rm(a) > adaptIntegrate(function(x, argA=a) f(x, a=argA), lower=0, upper=2, a=0.2) > > > # Use of Curry > adaptIntegrate(Curry(f, a=0.2), lower=0, upper=2) >
Here is another approach. If we preface any function with gsubfn's fn$ then it will turn formulas (subject to certain rules to determine which to pay attention to) into functions. 1. Here it is applied to the cubature example > library(cubature) > library(gsubfn) Loading required package: proto > > fn$adaptIntegrate(~ f(x, 0.2), lower=0, upper=2) $integral [1] 0.4677446 $error [1] 1.247382e-14 $functionEvaluations [1] 15 $returnCode [1] 0 2. and here is the heatmap example redone. The example line is to compute x so that the code is self contained: library(gsubfn) example(heatmap) fn$heatmap(x, hclustfun = ~ hclust(x, method="average")) -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel