checkboxGroupInput - 在Shiny

时间:2017-05-15 14:59:14

标签: r shiny

作为一个例子,假设我有三个不同的"功能" fun1(),fun2() and fun3()分别输出数字#1, #2, and #3

如果我在闪亮中使用以下选项:

checkboxGroupInput("selec",label = h3("Select function"),
 choices = list("fun1" = 1,"fun2" = 2, "fun3" = 3))

然后我可以运行"功能"我选择(一次一个),但我如何运行我选择的所有?,

例如,如果我选择fun1 and fun3,我想要输出函数#1 and #3

如果我选择fun1 and fun2,我想要输出函数#1 and #2

如果我全部选择它们,我想要所有输出

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我建议do.call(用于函数调用)和sapply()(用于迭代数组)的组合,见下文:

fun1 <- function() return("#1")
fun2 <- function() return("#2")
fun3 <- function() return("#3")

library(shiny)
ui <- fluidPage(
  checkboxGroupInput("functions", "Choose functions:",
                     choiceNames =
                       list("fun1", "fun2", "fun3"),
                     choiceValues =
                       list("fun1", "fun2", "fun3")
  ),
  textOutput("txt")
)

server <- function(input, output, session) {
  output$txt <- renderText({
    print(sapply(input$functions, do.call, args = list()))
  })
}

shinyApp(ui, server)