use list as function arguments
?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