es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Puede agregar elementos de acordeón de shinydashboardplus usando lapply o un bucle?

Estoy tratando de crear un acordeón en una aplicación shiny usando la función accordion de shinydashboardplus y, como es muy repetitivo y toda la información del acordeón proviene de una tabla de datos, idealmente me gustaría usar una función lapply o for loop. Sin embargo, no estoy seguro de si esto es posible. Aquí está mi código hasta ahora.

biblioteca(“shiny”)
biblioteca(shinydashboardPlus)

datos(iris)

UI —-

ui <- fluidPage(

# Título de la aplicación —-
titlePanel(“¡Hola Shiny!”),

# Diseño de la barra lateral —-
sidebarLayout(

# Panel de la barra lateral ----
sidebarPanel(

  p("Algún texto")

),

# Panel principal ----
mainPanel(

  # Salida: acordeón ----
  accordion(

    id = "id-accordion",

        #for (i in 1:3){
        #  accordionItem( #G11
        #    title = unique(ocup$nom2d[i]),
        #    tableOutput(paste0("table",i))
        #  )
        #  
        #}

        accordionItem( #G11
          title = unique(iris$Species)[1],
          tableOutput("table1")
        ), #G11 fin
        accordionItem( #G12
          title = unique(iris$Species)[2],
          tableOutput("table2")
        ), #G12
        accordionItem( #G13
          title = unique(iris$Species)[3],
          tableOutput("table3")
        )  #G13


  ) 

)

)
)

servidor <- function(input, output) {

lapply(1:3, function(i){
outputId <- paste0("table", i) output[[outputId]] <- renderTable({iris %>% filter(Species == unique(iris$Species)[i]) %>% select(Sepal.Length, Sepal.Width)})
})

}

shinyApp(ui, servidor)

También he considerado usar reactable en lugar de un acordeón, pero no puedo hacer que se vea bien (ver pregunta https://stackoverflow.com/questions/69810925/custom-js-aggregation-function-reactable-groups-pull-data-from-table )

Gracias de antemano por toda su ayuda.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás tratando de crear un acordeón en una aplicación Shiny utilizando la función de acordeón de la paquete shinydashboardPlus. Has considerado utilizar reactable en su lugar, pero no has podido hacer que se vea bien.

    Es posible utilizar una función lapply o un bucle for para crear el acordeón, como lo has intentado en tu código. Sin embargo, es difícil proporcionar una respuesta más específica sin ver los datos con los que estás trabajando. Podrías considerar publicar una nueva pregunta en Stack Overflow con más detalles sobre tus datos y la salida deseada.

Comments are closed.