【问题标题】:downloading file in shiny以闪亮的方式下载文件
【发布时间】:2017-07-06 12:31:31
【问题描述】:

我希望用户下载一个表格格式的文件,该文件带有标题以及顶部的两个搜索小部件。输出是预测值以及 80%(高-低)和 95%(高-低)置信区间。所以有五列,五行(默认)。但是,我在这里面临两个挑战。

挑战一: 当我运行该应用程序时,在单击“下载文件”后,文件名将作为没有扩展名的下载数据出现,而我已经提到文件名应该是“预测”并带有 png 扩展名,它应该是 forecated.png

挑战 2:在保存文件时输入 png 作为扩展名后,文件被保存但没有打印。

我在各种论坛中搜索并尝试复制它们,但似乎没有任何效果。

请提出建议。

闪亮的用户界面

library(shiny)    
downloadButton(outputId = "downloaddata" ,label ="Download the file"),

闪亮的服务器

output$downloaddata<-downloadHandler(

    filename = function(){
      paste("forecasted","png",sep=",")
    },
    content = function(file){
      png(file)
      h <-input$fst
      tab<-forecast(Model_mape(),h) 
      datatable(as.data.frame(tab), options = list(
         columnDefs = list(list(targets = c(1, 3), searchable = FALSE)),
         pageLength = 10))
      dev.off()

    }

  )

【问题讨论】:

  • 有时您需要在浏览器中打开应用程序以下载绘图和数据集
  • 我自己无法尝试,但png()dev.off() 之间的代码实际上是否在绘制一些东西。我看不到任何明显的功能可以这样做。
  • 你能把整个代码吗?我们可以运行它并找到您的问题(例如,我们需要您要下载的绘图或数据)
  • 您可能希望在 filename 函数中使用句点而不是逗号。事实上,如果这是您的实际代码,只需使用 filename = function() "forecasted.png"
  • @Jarko Dubbeldam 是的,它在 Rstudio 的绘图选项卡中绘图。

标签: r shiny


【解决方案1】:

也许它可以帮助你(这是一个简单的例子):

界面:

library(shiny)

shinyUI(fluidPage(

  mainPanel(plotOutput("plot1"),
           downloadButton("downloadplot","Download your plot"))

  ))

服务器:

library(shiny)

shinyServer(function(input, output) {
  your_plot = function(){
    (plot(rnorm(1000,0,1)))
  }


  output$plot1 <- renderPlot({
    your_plot()
  })

  output$downloadplot <- downloadHandler(
    filename = "plot_exemple.png",
    content = function(file) {
      png(file, width = 1200, height = 800)
      print(your_plot())
      dev.off()
    })

  })

有了这个,你可以很容易地下载一个png(在浏览器中打开)。

【讨论】:

    猜你喜欢
    • 2017-11-03
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 2020-09-21
    • 1970-01-01
    • 2016-05-07
    相关资源
    最近更新 更多