我有下面的代碼片段:省略號擴張嵌套函數:錯誤「..三合一不正確的上下文中使用,不......看在」
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'參數,一切正常。 – Aniko 2010-02-18 15:19:30