从单选按钮传递函数

Pass functions from radio buttons

我正在创建一个闪亮的应用程序,其功能依赖于单选按钮。我试图在 radioButtons 函数的 choices 参数中设置它们。这是我正在尝试做的一个例子,在 ui.R:

radioButtons("action",label=h3("Action"),
    choices=list(
        "Sum"=sum,
        "Mean"=mean))

我得到了下一个错误:

ERROR: 'match' requires vector arguments

我知道我可以使用 server.R 中的 switch 功能来设置功能,但我想做像这样:

lst=list("Sum"=sum,"Mean"=mean)
lst[[1]](x)
lst[[2]](x)

这当然在 R 中工作得很好。

你不能这样做。作为 choices 参数传递的列表的名称和值被呈现为 HTML 并且这样做,必须转换为 character,并且从创建的输入返回的值是 [=12= 】 还有。使用 lookup table 是一个非常匹配的唯一合理的选择。

另一种方法是将 choices=list("Sum"="sum", "Mean"="mean")eval(parse(..)) 结合使用,但在这种情况下 这是一个非常糟糕的主意 ,因为它给了用户一个在服务器上执行任意 R 命令的能力。