从单选按钮传递功能

时间:2015-07-26 18:03:54

标签: r shiny

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

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

我收到了下一个错误:

  

错误:'匹配'需要矢量参数

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

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

R当然可以正常使用。

1 个答案:

答案 0 :(得分:2)

你做不到这样的事情。作为choices参数传递的列表的名称和值将呈现为HTML并执行此操作,必须转换为character,并且从创建的输入返回的值也是characters。使用查找表是一个非常匹配的唯一合理选项。

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