[R] Deparsing part of a list argument

Gabor Grothendieck ggrothendieck at gmail.com
Fri Oct 26 06:12:05 CEST 2007


Check out:

http://tolstoy.newcastle.edu.au/R/e2/help/06/10/2242.html

On 10/25/07, Andrew Smith <andrewsmith81 at gmail.com> wrote:
> Here's a simple example of the type of function I'm trying to write,
> where the first argument is a list of functions:
>
> myfun <- function(funlist, vec){
>     tmp <- lapply(funlist, function(x)do.call(x, args = list(vec)))
>     names(tmp) <- names(funlist)
>     tmp
> }
>
> > myfun(list("Summation" = sum, prod, "Absolute value" = abs), c(1, 4, 6, 7))
> $Summation
> [1] 18
>
> [[2]]
> [1] 168
>
> $`Absolute value`
> [1] 1 4 6 7
>
>
> What I would like is for the names of the result to be the same as the
> names of funlist (as is the case in components 1 and 3 above), but if
> some components of funlist are unnamed, I would like the default name
> in the result to be the name of the actual function used.  So in the
> above example, I want the name of the second component to default to
> 'prod', since funlist[[2]] has no name.
>
>  But the problem is that I can't get the function names corresponding
> to the unnamed elements of funlist by using the usual
> deparse(substitute)) trick, since they're part of a list which is
> treated as one big argument.  So deparse(substitute(funlist)) just
> gives me one big character string of all the functions, and I'm not
> sure how I can use that to get just the functions that aren't named.
> Any ideas?
>
> Thanks,
> Andrew
>
> ______________________________________________
> R-help at 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.
>



More information about the R-help mailing list