【问题标题】:Shiny DownloadHandler does not download the fileShiny DownloadHandler 不下载文件
【发布时间】:2021-09-03 02:04:06
【问题描述】:

我没有太多在闪亮方面工作的经验。我正在尝试使用 DownloadHandeler 函数下载数据。当我点击下载按钮时,我什么也得不到。

我的代码:

ui:   downloadButton('download',"Download the data"),


Server :

 output$tb_cc <- DT::renderDataTable({
    if (is.null(input$dataset_cc)) {
      return(NULL)
    }
    
    library(dplyr)
    library(tidyverse)
    library(tidytext)
    
    df <- filedata_cc()
    df$date <- df$Responsedate
    df$date <- as.Date(df$date, format = "%m/%d/%Y")
    df <-
      subset(df, df$date >= input$dateRange_cc[1] &
               df$date <= input$dateRange_cc[2])
    
    df <- subset(df, df$sentiment_segment == input$sentiment_cc)
    
    df <- subset(df, df$Type.1 == input$issuetype_cc)
    
    
    df<- df[c(3:10)]
    DT::datatable(df)
  })

  output$download <- downloadHandler(
    filename = function() { 'Sentiment_data.csv' }, 
    content = function(file) {
      write.csv(df(), file)
    }
  )

样本数据: enter image description here

【问题讨论】:

  • 嗨,您能否编辑您的问题以提供最小数据集?就像他们描述的here。这将使您的代码故障排除变得更加容易。
  • 这就是它的样子:响应日期:06/01/2021 市场:英国 NPS:10 Type.1:a concat_comment:abhs mood_segment:积极
  • 您能告诉我们有关“filedata_cc()”的信息吗?这个函数来自哪个包?

标签: r shiny shiny-server


【解决方案1】:

您需要在renderDataTable 之外拥有df() 反应对象。像这样的东西应该可以工作:

ui <- fluidPage(
   downloadButton('download',"Download the data")
)

server <- function(input, output) {
  df<-reactive({
    faithful
  })

  output$download <- downloadHandler(
      filename = function() { 'Sentiment_data.csv' },
      content = function(file) {
        write.csv(df(), file)
    }
  )
}

shinyApp(ui, server)

所以在你的例子中,你可以写而不是df&lt;-reactive({ faithful })

df <- reactive({
    df<-filedata_cc()
    df$date <- df$Responsedate
    df$date <- as.Date(df$date, format = "%m/%d/%Y")
    df <-
      subset(df, df$date >= input$dateRange_cc[1] &
               df$date <= input$dateRange_cc[2])
    
    df <- subset(df, df$sentiment_segment == input$sentiment_cc)
    
    df <- subset(df, df$Type.1 == input$issuetype_cc)
    
    
    df<- df[c(3:10)]
    df
})

【讨论】:

  • 我仍然得到错误(错误 - '数据' 必须是二维的(例如数据框或矩阵))。
猜你喜欢
  • 1970-01-01
  • 2018-11-29
  • 2019-10-03
  • 2017-08-23
  • 2020-12-08
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多