Есть несколько вещей, которые нужно сделать.
Во-первых, ваш selected
аргумент checkboxGroupInput
должен соответствовать одному из вариантов.Здесь я изменил его на "Plot"
.
Во-вторых, я использовал "input.my_choices.includes('Example') && input.my_choices.includes('Plot')"
в качестве условия, когда выбраны оба.
В-третьих, Shiny не позволяет использовать один и тот же выход болеечем один раз.Чтобы обойти это, я сделал дубликаты выходов в коде server
и сослался на дублированные имена в условной панели для условия, в котором установлены оба флажка.
library(shiny)
ui = fluidPage(
titlePanel("Plot or Example?"),
sidebarLayout(
sidebarPanel(
checkboxGroupInput("my_choices", "Example or Plot",choices = c("Plot", "Example"), selected = "Plot"),width=2),
mainPanel(
conditionalPanel(
condition = "input.my_choices == 'Plot'",
plotOutput("my_test1")
),
conditionalPanel(
condition = "input.my_choices == 'Example'",
uiOutput("my_test2")
),
conditionalPanel(
condition = "input.my_choices.includes('Example') && input.my_choices.includes('Plot')",
plotOutput("my_test1a"),
uiOutput("my_test2a")
)
)
)
)
server = function(input, output) {
output$my_test1 <- output$my_test1a <- renderPlot({plot(runif(100))})
output$my_test2 <- output$my_test2a <- renderUI({
images <- c("http://www.i2symbol.com/images/abc-123/o/white_smiling_face_u263A_icon_256x256.png")
tags$img(src= images)
})
}
shinyApp(ui, server)