访问闪亮的输出槽,但不是使用“$”

Access a shiny output slot, but not by using "$"

我想访问一个闪亮的输出槽,例如 output$data,但我想使用变量来执行此操作,以便可以通过编程方式分配输出。例如:

library(shiny)

ui <- fluidPage(
    sidebarPanel(
        selectInput(inputId = "species_in",
                    label = "Species:",
                    choices = c("none", "Human", "Mouse"),
                    width = "40%"),
    ), 
    
    mainPanel(
        textOutput("species_out_1"),
        textOutput("species_out_2"),
        textOutput("species_out_3"),
    )
)
    
server <- function(input, output, session){
    
    output$species_out_1 <- renderText({
        input$species_in
    })

    output$species_out_2 <- renderText({
        input[["species_in"]]
    })
    
    x <- "species_out_3"
    output[[x]] <- renderText({
        input$species_in
    })
    
}

shinyApp(ui,server)

这可能吗?

是的,这行得通,所以我当前应用程序的其他地方有错误。

请参阅下面的代码,该代码演示了 $ 和 [[]] 的等价性。


ui <- fluidPage(
    sidebarPanel(
        selectInput(inputId = "species_in",
                    label = "Species:",
                    choices = c("none", "Human", "Mouse"),
                    width = "40%"),
    ), 
    
    mainPanel(
        textOutput("species_out_1"),
        textOutput("species_out_2"),
        textOutput("species_out_3"),
    )
)
    
server <- function(input, output, session){
    
    output$species_out_1 <- renderText({
        input$species_in
    })

    output$species_out_2 <- renderText({
        input[["species_in"]]
    })
    
    x <- "species_out_3"
    output[[x]] <- renderText({
        input$species_in
    })
    
}

shinyApp(ui,server)