Aliases: do.call
Keywords: programming
### ** Examples do.call("complex", list(imaginary = 1:3))
[1] 0+1i 0+2i 0+3i
## if we already have a list (e.g., a data frame) ## we need c() to add further arguments tmp <- expand.grid(letters[1:2], 1:3, c("+", "-")) do.call("paste", c(tmp, sep = ""))
[1] "a1+" "b1+" "a2+" "b2+" "a3+" "b3+" "a1-" "b1-" "a2-" "b2-" "a3-" "b3-"
do.call(paste, list(as.name("A"), as.name("B")), quote = TRUE)
[1] "A B"
## examples of where objects will be found. A <- 2 f <- function(x) print(x^2) env <- new.env() assign("A", 10, envir = env) assign("f", f, envir = env) f <- function(x) print(x) f(A) # 2
[1] 2
do.call("f", list(A)) # 2
[1] 2
do.call("f", list(A), envir = env) # 4
[1] 4
do.call( f, list(A), envir = env) # 2
[1] 2
do.call("f", list(quote(A)), envir = env) # 100
[1] 100
do.call( f, list(quote(A)), envir = env) # 10
[1] 10
do.call("f", list(as.name("A")), envir = env) # 100
[1] 100
eval(call("f", A)) # 2
[1] 2
eval(call("f", quote(A))) # 2
[1] 2
eval(call("f", A), envir = env) # 4
[1] 4
eval(call("f", quote(A)), envir = env) # 100
[1] 100