【发布时间】:2011-01-18 05:53:35
【问题描述】:
我有以下代码sn-p:
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)
这会导致抛出以下错误:
..3 used in an incorrect context, no ... to look in
当我使用以下定义时:
f.barchart <- function(...) {
substitute(barchart(...,
panel = function(x, y, ...) {
panel.barchart(x, y, ...)
}
))
}
我明白了:
barchart(a ~ b, data = x, groups = c,
panel = function(x, y, ...) {
panel.barchart(x, y, a ~ b, data = x, groups = c)
})
我不确定这是否是导致上述错误的原因,但这意味着 panel.barchart 中的省略号被错误地扩展为 给 f.barchart 而不是面板的参数的内容 功能。
有没有办法避免这个问题?我怎样才能使功能 工作?
【问题讨论】:
-
我会小心调用变量
c,因为当您使用groups=c时,它认为您指的是函数。然而,这不是你的问题的原因。我发现的唯一一点是,没有group=c参数,一切正常。