[R] Trying to build up functions with its names by means of lapply

Julio Sergio juliosergio at gmail.com
Wed Jun 5 04:53:11 CEST 2013

I want to generate specific gamma distribution functions, given fixed 
This is I have k, and theta, say

   k <- 32.2549       # shape
   theta <- 26.32809  # scale

   # I have an auxiliary function that produces funcions according to 
   # a given character (this is to have either dgamma, pgamma or qgamma)
   # for the specific parameters given above:

   faux <- function(c) {
     function (x) get(paste0(c,"gamma"))(x,k,scale=theta)

   # So I can have, for instance, dgamma, and pgamma with

   dff <- faux("d")
   pff <- faux("p")

   ## [1] 0.001433138

   ## [1] 0.844305

Now, if I try to produce both functions in one shot with lapply, the thing 
doesn't work, see

   ffs <- lapply(c("d", "p"), faux)

   ## [1] 0.844305 

   ## [1] 0.844305 
The two produced functions are the very same and correspond to pgamma!!
Maybe I'm missing something. Do you have any idea?



More information about the R-help mailing list