set.seed(1459)
myfun = function(...){
x = rnorm(...)
data.frame(mean = mean(x), sd = sd(x))
}
evalmany(myfun, mean = c(5, 9), sd = c(2, 3), default.args = list(n = 1e6))
evalmany(myfun, mean = c(5, 9), sd = c(2, 3), default.args = list(n = 1e6),
collate.id = "multi")
evalmany(myfun, mean = seq(20), sd = seq(1, 4, by = 0.1),
default.args = list(n = 1e6), method = "permute", sample = 10)
# vector recycling
evalmany(myfun, mean = c(0, 3, 5), sd = c(1, 10),
default.args = list(n = 1e6), method = "set", collate.id = "multi")
# Parallel processing
evalmany(myfun, mean = seq(0, 50, by = 10), sd = seq(1, 10, by = 1.5),
default.args = list(n = 1e5), method = "permute", collate.id = "multi",
clusters = 2)
# Complex objects and error handling
formulas = list(y ~ 1, y ~ x, y ~ I(x^2), y ~ x + z)
datasets = list(
A = data.frame(x = seq(0, 99), y = seq(0, 99) + rnorm(100)),
B = data.frame(x = seq(0, 99), y = seq(0, 99) + rnorm(100, mean = 5)),
C = data.frame(x = seq(0, 99), y = seq(0, 99) + rlnorm(100, meanlog = 1))
)
# raw output
evalmany(lm, formula = formulas, data = datasets, method = "set",
collate = FALSE)
# data extraction
evalmany(lm, formula = formulas, data = datasets, method = "permute",
collate.id = "multi", collate.fun = function(x)
data.frame(param = names(x$coefficients), value = x$coefficients,
row.names=NULL))Run the code above in your browser using DataLab