I am trying to define a general R function that has a function as the output 
that depends on the user's input arguments (this may make more sense by looking 
at the toy example below).  My real use for this type of code is to allow a 
user to choose from many parameterizations of the same general model.

My "issue" is that when I compile a package with this type of code in it I get 
a __warning__ that "multiple local function definitions for 'm' with different 
formal arguments."  While this is not a "deadly error" I would like to avoid 
the warning if possible.  Can someone provide some guidance?  Thank you in 
advance for any help you can offer.

For what it is worth ... I am working on a Windows XP machine with R 2.11.1.




## A function that allows the user to create a new function that depends on 
their
##   choice in the type argument.  As a simple example, if the user chooses 
"one"
##   then the output function is exponential growth, if the user choses "two" 
then
##   thhe output function is logistic growth.

mdlChooser <- function(type=c("one","two")) {
  type <- match.arg(type)
  switch(type,
    one={ m <- function(x,N0,r) N0*exp(x*r) },
    two={ m <- function(x,N0,r,K) (N0*K)/(N0+(K-N0)*exp(-x*r)) },
  )
  m
}

## define time steps
t <- 0:10

## create a function -- junk1 -- that produces exponential growth
junk1 <- mdlChooser("one")
junk1
res1 <- junk1(t,500,0.2)
res1

## create a function -- junk2 -- that produces logistic growth
junk2 <- mdlChooser("two")
junk2
res2 <- junk2(t,500,0.2,1000)
res2



        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to