从单选按钮传递函数
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 命令的能力。
我正在创建一个闪亮的应用程序,其功能依赖于单选按钮。我试图在 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 命令的能力。