[Rd] Changing function arguments to NULL
Roger D. Peng
rpeng at jhsph.edu
Mon Feb 28 22:58:12 CET 2005
I'm not sure what you're doing but did you try
recursionFUN$x <- list(NULL)
?
-roger
McGehee, Robert wrote:
> I'm trying to build a recursive set of functions that take a set of
> arguments, change some of the arguments and recursively call the same
> (or different) function.
>
> For example here's a stupid recursive counting function that prints back
> all integers from x to 0 (and ignores arguments y and z)
>
> cnt <- function(x, y, z) {
> stopifnot(is.numeric(x))
> print (x)
> recursionFUN <- match.call()
> recursionFUN$x <- x - 1
> if (x <= 0) {
> invisible(TRUE)
> } else {
> eval(recursionFUN)
> }
> }
>
> My problem is that sometimes I want to set one of the arguments to NULL.
> But trying to set one of the match.call() arguments to NULL causes it to
> be ignored (since the match.call() output is coerced into a list). What
> I'd like is that the match.call() output could be converted into an
> alist, so that tagged values with no arguments could be handled and
> passed on to the next function call without being ignored.
>
> However, I haven't been able to figure out how to construct this alist
> without knowing ahead of time what all of the function arguments are and
> typing them in explicitly:
> e.g. alist(x = 5, y = 2, z = 3).
>
> Re-assigning and then re-evaluating output of the match.call() function
> might not be the way to go, but I am not sure, and would appreciate any
> comments on the best way to set function arguments to NULL before
> evaluating.
>
> Thanks,
> Robert
>
> Robert McGehee
> Geode Capital Management, LLC
> 53 State Street, 5th Floor | Boston, MA | 02109
> Tel: 617/392-8396 Fax:617/476-6389
> mailto:robert.mcgehee at geodecapital.com
>
>
>
> This e-mail, and any attachments hereto, are intended for us...{{dropped}}
>
> ______________________________________________
> R-devel at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
More information about the R-devel
mailing list