[R] how to update my own function

Erik Iverson eriki at ccbr.umn.edu
Tue Nov 23 22:34:26 CET 2010


Edwin -

I think the usual way to do this would be to use a function
like lapply or mapply to call your function multiple times
with varying arguments.

For example, with one varying argument:
lapply(list(3,5), test, z = 4)

With multiple varying arguments:
mapply(test, y = list(3,5), z = list(4, 8))

See ?lapply and ?mapply, and the MoreArgs and
SIMPLIFY arguments to mapply.

--Erik

Edwin Sun wrote:
> Hello all,
> 
> I wrote a function with many arguments. Then I need to call it many times
> with changes on some arguments only. Is there any way to write a function or
> have a method to "update" it, like the relationship between lm() and
> update()?
> 
> Many thanks,
> 
> Edwin Sun
> 
> ------------
> This is the sample code.
> 
>> test <- function(y, z) { 
> +   x <- y +1
> +   w <- z * 2
> +   result <- list(x=x, w=w)
> +   class(result) <- "ego"
> +   return(result)
> + }
> 
>> me <- test(y=3, z=4); me
> $x
> [1] 4
> 
> $w
> [1] 8
> 
> attr(,"class")
> [1] "ego"
> 
>> update(me, y=5)
> Error in update.default(me, y = 5) : need an object with call component
>



More information about the R-help mailing list