作为一个例子,假设我有三个不同的"功能" 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
如果我全部选择它们,我想要所有输出
感谢您的帮助
答案 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)