downloadButton を使用して、光沢のあるプロットを保存する方法を理解しようとしています。パッケージの例はdownloadButton/downloadHandler、.csv を保存する方法を示しています。それに基づいて再現可能な例を作成します。
為に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')
  )
))
為に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())
    }
  )
})
この質問に回答している場合は、おそらくこれに精通しているでしょうが、これを機能させるには、上記を別のスクリプト (ui.Rおよび作業ディレクトリ内のserver.Rフォルダー ( foo) ) に保存します。光沢のあるアプリを実行するには、 を実行しますrunApp("foo")。
を使用すると、関数を使用できないことggsaveを示すエラー メッセージが表示されます (と思います)。標準のグラフィック デバイス (以下のようなもの) を使用すると、エラーは発生しませんが、グラフィックは書き込まれません。ggsavefilenameDownload Plot
プロットを作成するために downloadHandler を機能させるためのヒントをいただければ幸いです。