?do.call
On Thu, May 24, 2012 at 9:32 AM, Alexander Shenkin <ashenkin at ufl.edu>
wrote:> Hello Folks,
>
> Is there any way to pass a list into a function such that the function
> will use the list as its arguments? ?I haven't been able to figure that
out.
>
> The background: I'm trying to build a function that will apply another
> function multiple times, each time with a different set of specified
> arguments. ?I'm trying to figure out how to pass in a list of argument
> lists, then loop through the top-level list, passing in the lower-level
> list as function arguments.
>
> pseudocode:
>
> b = list( list( arg1 = 1, arg2 = 2 ),
> ? ? ? ? ?list( arg1 = 3, arg2 = 4 )
> ? ? ? ?)
>
> a <- apply_function(arglist) {
> ? ? ? ?for (i in length(arglist)) {
> ? ? ? ? ? ? ? ?b(arglist[i])
> ? ? ? ?}
> }
>
>
> Specifically, the actual use I'm trying to implement is a function to
> format columns of data frames and matrices independently. ?What I have
> so far is below, but it's not working. ?Perhaps I'm going about
this the
> wrong way?
>
>
> format_cols <- function(x, format_list = list()) {
> ? ?# usage: length(format_list) must equal ncol(x)
> ? ?# ? ? ? ?format list should be a list of lists of key=value pairs
> corresponding to format settings for each column
>
> ? ?if (is.data.frame(x)) {
> ? ? ? ?newout = data.frame()
> ? ?} else if (is.matrix(x)) {
> ? ? ? ?newout = matrix()
> ? ?}
>
> ? ?for (i in 1:ncol(x)){
> ? ? ? ?newout = cbind(newout, format(x,format_list[[i]]))
> ? ? ? ?x[,i] = format(x,format_list[[i]])
> ? ?}
> ? ?return(newout)
> }
>
> Thanks,
> Allie
>
> ______________________________________________
> 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.
--
Gregory (Greg) L. Snow Ph.D.
538280 at gmail.com