Separando fileInput de radioButtons en el código de shiny
Cuando ejecutes el código a continuación, notarás que tengo dos opciones a continuación. Si presionas la opción Excel
, aparecerá un fileInput
justo debajo de los radioButtons
. Sin embargo, me gustaría saber si es posible separar fileInput
de radioButtons
. Insertaré una imagen para aclarar lo que quiero. Observa que están separados.
Código ejecutable a continuación:
library(shiny)
library(dplyr)
library(shinyjs)
library(shinythemes)
library(readxl)
ui <- fluidPage(
shiny::navbarPage(theme = shinytheme("flatly"), collapsible = TRUE,
br(),
tabPanel("PAGE1",
sidebarLayout(
sidebarPanel(
radioButtons("button",
label = h3("Origen de datos"),
choices = list("Excel" = "Excel",
"Base de datos" = "database"),
selected = "File"),
uiOutput('fileInput'),
),
mainPanel(
)))))
server <- function(input, output) {
observe({
if(is.null(input$button)) {
}else if (input$button == "Excel"){
output$fileInput <- renderUI({
fileInput("file",h4("Importar archivo"), multiple = T, accept = ".xlsx")
})
} else if(input$button=="database"){
output$fileInput <- NULL
} else {
output$fileInput <- NULL
}
})
}
shinyApp(ui = ui, server = server)
Ejemplo:
Lo dejé en rojo para especificar el espacio.
davy.ai
Sí, es posible separar
fileInput
deradioButtons
. Solo necesitas envolverfileInput
yradioButtons
en funciones separadas decolumn
dentro desidebarPanel
. Aquí está el código modificado:Y así es como se ve: