4

プロットに多数のチェックボックスを追加するために使用{manipulate}しています-描画されている各線に1つずつ。必要な数は事前に定義されていないため、すべてのチェックボックスをベクトルまたはリストとして関数に渡す方法を見つけようとしていmanipulateます。ドキュメントは何かを示唆しているようです:

操作( _expr, ...)

_expr : 評価する式。

... : 1 つ以上の名前付きコントロール引数 (つまり、スライダー、ピッカー、チェックボックス、またはボタン)、または名前付きコントロールを含むリスト。

必要な数のチェックボックスのリストを渡すことが解決策になると思います。しかし、それはどのように正確に実行されるべきですか?

4

1 に答える 1

1

次の例は、あなたが望むことをするはずです:

# Define function for ploting
example <- function(...){
  plot(cars)
  i <- 1
  for (my.control in list(...)) {
    if (my.control) abline(0, i)
    i <- i+1
  }
}

# Define your controls
custom.args <- list()
for (i in 1:5) {
  custom.args <- append(custom.args, list(checkbox(FALSE, paste("Ceckbox", i))))
}
names(custom.args) <- paste("checkbox", 1:5, sep="")

# Pass everything to manipulate
library(manipulate)
manipulate(
  eval(parse(text=sprintf('example(%s)', 
                          paste(names(custom.args), collapse=","))
             )),
  custom.args)

コントロール値をプロット関数に渡すためのよりクリーンな方法があるかどうかはわかりませんが、少なくともこれは機能します。

于 2013-09-27T08:39:55.397 に答える