Я столкнулся с этим создателем пользовательских отчетов в блестящем приложении
Stackoverflow Link
Я хочу создать нечто подобное, но вместо константы «y» в ggplot (в данном случае «mpg»); мои графики будут созданы на основе значений из разных фреймов данных
В выпадающем списке будут только имена переменных, назначенные этим графикам, и после выбора переменной и нажатия кнопки действия графики будут заполняться один под другим или в виде сетки
Мне трудно найти способ сделать это
Моя предыдущая попытка была такой же, как в ссылке
Предыдущий код:
library(shiny)
server <- shinyServer(function(input, output, session) {
output$files <- renderTable(input$files)
files <- reactive({
files <- input$files
files$datapath <- gsub("\\\\", "/", files$datapath)
files
})
output$images <- renderUI({
if(is.null(input$files)) return(NULL)
image_output_list <-
lapply(1:nrow(files()),
function(i)
{
imagename = paste0("image", i)
imageOutput(imagename, width = "50%", height = "600px")
})
do.call(tagList, image_output_list)
})
observeEvent(input$UploadCharts, {
toggleModal(session, "boxPopUp1", toggle = "toggle")
})
observe({
if(is.null(input$files)) return(NULL)
for (i in 1:nrow(files()))
{
print(i)
local({
my_i <- i
imagename = paste0("image", my_i)
print(imagename)
output[[imagename]] <-
renderImage({
list(src = files()$datapath[my_i],
alt = "Image failed to render")
}, deleteFile = FALSE)
})
}
})
})
ui <- shinyUI(fluidPage(
titlePanel("Report Creator"),
actionButton("UploadCharts", "Upload Charts"),
tags$head(tags$style("#boxPopUp1 .modal-dialog{ width:1000px}")),
bsModal("boxPopUp1", "UploadCharts", "Change name",
sidebarLayout(
sidebarPanel(
fileInput(inputId = 'files',
label = 'Select an Image',
multiple = TRUE,
accept=c('image/png', 'image/jpeg'))
),
mainPanel(
tableOutput('files'),
width = 10,
uiOutput('images'))
)
)
))
shinyApp(ui=ui,server=server)
Мне кажется, что предыдущий метод был бы гораздо более подходящим для вывода, который я хочу для своего отчета