我{manipulate}
用来在绘图中添加一些复选框 - 一个用于绘制的每一行。由于所需的数字不是预先定义的,我试图找到一种方法将所有复选框作为向量或列表传递给manipulate
函数。该文档似乎暗示了一些东西:
操纵(
_expr
,...)_expr :要评估的表达式。
... :一个或多个命名控件参数(即滑块、选择器、复选框或按钮),或包含命名控件的列表。
我认为出路是传递所需数量的复选框列表。但是具体应该怎么做呢?
我{manipulate}
用来在绘图中添加一些复选框 - 一个用于绘制的每一行。由于所需的数字不是预先定义的,我试图找到一种方法将所有复选框作为向量或列表传递给manipulate
函数。该文档似乎暗示了一些东西:
操纵(
_expr
,...)_expr :要评估的表达式。
... :一个或多个命名控件参数(即滑块、选择器、复选框或按钮),或包含命名控件的列表。
我认为出路是传递所需数量的复选框列表。但是具体应该怎么做呢?
下面的例子应该做你想做的事:
# 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)
我不知道是否有更简洁的方法将控制值传递给绘图函数,但至少这是可行的。