После нескольких проблем, пытаясь реализовать простую кнопку загрузки блестящего приложения, я просто попытался реализовать обнаруженный пример.
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("ngear", "Select the gear number", c("1"="cyl","2"="am","3"="gear"))
),
mainPanel(
plotOutput("plot"),
downloadButton("report","download"))
)
)
server <- function(input, output) {
mtreact <- reactive({
mtcars[,c("mpg",input$ngear)]
})
output$plot <- renderPlot({
with(mtreact(),boxplot(mpg~mtreact()[,2]))
})
output$report <- downloadHandler(
filename = function(){
paste("plot","png",sep=".")
},
content = function(){
png(file)
with(mtreact(),boxplot(mpg~mtreact()[,2]))
dev.off
}
)
}
# Run the application
shinyApp(ui = ui, server = server)
Когда я запускаю этот код, блестящее приложение работает правильно. Однако, когда я нажимаю на кнопку загрузки, открывается окно для сохранения файла с именем «report» без расширения, и он не содержит графика, как ожидалось.
Впервые я пробую эту функцию. Тогда кто-нибудь увидит ошибку в коде?