> > If however I wanted to call the function "densityplot" within a function and > pass the "groups" argument as an argument of that function, how would I have > to proceed? It is not as straightforward as > > f <- function(data, groupvar) { > densityplot(~ x, data, groups = groupvar) > } > > probably because the lattice function "densityplot.formula" preprocesses > the "groups" argument with > > groups <- eval(substitute(groups), data, environment(formula)) > > It there a way how I could pass the "groups" argument in the function "f"?
Here's one approach. Pass the 'groups' variable as a character, then find that variable in the data frame and rename it. d <- data.frame(x = rnorm(100), y = c("a", "b")) f <- function(data, groupvar) { names(data)[which(names(data) == groupvar)] <- "gp" densityplot(~ x, data, groups = gp) } f(d, groupvar="y") ______________________________________________ R-help@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.