I have the following code snippet:
require(lattice)
f.barchart <- function(...) {
barchart(...,
panel = function(x, y, ...) {
panel.barchart(x, y, ...)
}
)
}
x <- data.frame(a = c(1,1,2,2), b = c(1,2,3,4), c = c(1,2,2,1))
f.barchart(a ~ b, data = x, groups = c)
Which results in the following error being thrown:
..3 used in an incorrect context, no ... to look in
When I use the following definition:
f.barchart <- function(...) {
substitute(barchart(...,
panel = function(x, y, ...) {
panel.barchart(x, y, ...)
}
))
}
I get:
barchart(a ~ b, data = x, groups = c,
panel = function(x, y, ...) {
panel.barchart(x, y, a ~ b, data = x, groups = c)
})
I'm not sure if this is the cause of above error but this would mean that the ellipsis in panel.barchart gets wrongly expanded with the contents of the arguments given to f.barchart and not the panel function.
Is there a way to avoid this problem? How can I make the function work?