> 
> 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.

Reply via email to