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

Thomas Zumbrunn
Thu, 11 Dec 2008 10:55:59 -0000

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