R 通过单选按钮传递功能

R 通过单选按钮传递功能,r,shiny,R,Shiny,我正在创建一个闪亮的应用程序,其功能依赖于单选按钮。我试图在radioButtons函数的choices参数中设置它们。下面是我在ui.R中尝试做的一个示例: radioButtons("action",label=h3("Action"), choices=list( "Sum"=sum, "Mean"=mean)) 我得到了下一个错误: 错误:“匹配”需要向量参数 我知道我可以使用server.R中的switch函数来设置这些函数,但我想这样做: l

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

radioButtons("action",label=h3("Action"),
    choices=list(
        "Sum"=sum,
        "Mean"=mean))
我得到了下一个错误:

错误:“匹配”需要向量参数

我知道我可以使用server.R中的switch函数来设置这些函数,但我想这样做:

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

当然,这在R中效果很好。

你不能这样做。作为
选项
参数传递的列表的名称和值被呈现为HTML,并且必须转换为
字符
,从创建的输入返回的值也是
字符
。使用查找表是一种非常匹配的方法,也是唯一合理的选择

另一种方法是将
choices=list(“Sum”=“Sum”,“Mean”=“Mean”)
eval(parse(…)
结合使用,但在这种情况下这是一个非常糟糕的主意,因为它让用户能够在服务器上执行任意R命令