4

私はこのようなラティス棒グラフ関数のラッパーを作成しようとしています(デフォルトでggplotテーマを利用するため):

require(ggplot2)
require(lattice)
require(latticeExtra)
data(Titanic)
mytheme = ggplot2like()
gbarchart = function(...) {
    barchart(..., par.settings=mytheme)
}
gbarchart(Class ~ Freq | Sex + Age,
          as.data.frame(Titanic),
          groups = Survived,
          stack = TRUE,
          layout = c(4, 1),
          auto.key = list(title = "Survived", columns = 2),
          scales = list(x = "free"))

エラーが発生します:

Error in eval(expr, envir, enclos) : 
  ..3 used in an incorrect context, no ... to look in

が直接par.settings=mytheme追加された場合、それは機能します:barchart

barchart(Class ~ Freq | Sex + Age,
          as.data.frame(Titanic),
          groups = Survived,
          stack = TRUE,
          layout = c(4, 1),
          auto.key = list(title = "Survived", columns = 2),
          scales = list(x = "free"),
          par.settings=mytheme)

ここに画像の説明を入力

4

1 に答える 1

2

Barchart は、ペアリストではなく、個々の引数を期待しています。私はこのようなことをします:

gbarchart = function(...) {
  args <- as.list(match.call()[-1])
  args$par.settings=mytheme
  do.call(barchart,args)
}

ここに画像の説明を入力

于 2013-10-26T09:55:12.127 に答える