[R] call lattice function in a function passing "groups" argument

Thomas Zumbrunn t.zumbrunn at unibas.ch
Thu Dec 11 11:55:59 CET 2008

I'm trying to use a lattice function within a function and have problems 
passing the "groups" argument properly. Let's say I have a data frame

d <- data.frame(x = rnorm(100), y = c("a", "b"))

and want to plot variable x in a densityplot, grouped by the variable y, then 
I would do something like

densityplot(~ x, d, groups = y)

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"?

Thanks for any hints,
Thomas Zumbrunn

More information about the R-help mailing list