Enregistrer des parcelles faite dans un brillant app

Je suis à essayer de comprendre comment utiliser downloadButton pour enregistrer une intrigue avec des brillants. L'exemple dans le paquet montre downloadButton/downloadHandler pour enregistrer un .csv. Je vais faire un exemple reproductible sur cette base.

Pour ui.R

shinyUI(pageWithSidebar(
  headerPanel('Downloading Data'),
  sidebarPanel(
selectInput("dataset", "Choose a dataset:", 
            choices = c("rock", "pressure", "cars")),
    downloadButton('downloadData', 'Download Data'),
    downloadButton('downloadPlot', 'Download Plot')
  ),
  mainPanel(
    plotOutput('plot')
  )
))

Pour server.R

library(ggplot2)
shinyServer(function(input, output) {
  datasetInput <- reactive({
    switch(input$dataset,
           "rock" = rock,
           "pressure" = pressure,
           "cars" = cars)
  })

  plotInput <- reactive({
    df <- datasetInput()
    p <-ggplot(df, aes_string(x=names(df)[1], y=names(df)[2])) +
      geom_point()
  })

  output$plot <- renderPlot({
    print(plotInput())
  })

  output$downloadData <- downloadHandler(
    filename = function() { paste(input$dataset, '.csv', sep='') },
    content = function(file) {
      write.csv(datatasetInput(), file)
    }
  )
  output$downloadPlot <- downloadHandler(
    filename = function() { paste(input$dataset, '.png', sep='') },
    content = function(file) {
      ggsave(file,plotInput())
    }
  )
})

Si vous êtes de répondre à cette question, vous êtes probablement familier avec cela, mais pour obtenir ce travail, enregistrez le ci-dessus dans des scripts séparés (ui.R et server.R dans un dossier (foo) dans le répertoire de travail. Pour exécuter la brillante application, exécutez runApp("foo").

À l'aide de ggsave, je reçois un message d'erreur indiquant que ggsave ne pouvez pas utiliser la filename fonction (je crois). Si j'utilise le standard de périphérique graphique (comme ci-dessous), le Download Plot fonctionne sans erreur, mais il n'a pas d'écrire le graphique.

Des conseils pour obtenir downloadHandler de travail pour la rédaction des parcelles serait appréciée.

InformationsquelleAutor alexwhan | 2013-02-11