如何修复 flexdashboard 中的下载按钮侧边栏问题

Posted

技术标签:

【中文标题】如何修复 flexdashboard 中的下载按钮侧边栏问题【英文标题】:How to fix download button sidebar issue in flexdashboard 【发布时间】:2016-09-27 19:29:21 【问题描述】:

我在侧边栏面板的 flexdashboard 中添加了一个下载按钮,但是当我编织 .RMD 时它会出现在主面板中。你能指导我如何解决它吗?

这是我正在尝试完成的一个最小示例

---
title: "Download Button in Wrong Panel"
output: 
  flexdashboard::flex_dashboard:
    vertical_layout: scroll
runtime: shiny
---

```r setup, include=FALSE

## Setting up required libraries
library(flexdashboard)
library(dplyr)
library(shiny)
library(knitr)

dataset <- read.csv(somefile)
```

Inputs .sidebar
-----------------------------------------------------------------------

### Input Filters

```r input

## Metric 1
selectInput('metric',
            'Choose Metric',
            names(dataset %>% select(-default_column)),
            selected = "default_metric")

## Download Button
downloadButton('downloadData','Download Result Set')
```

Outputs
-----------------------------------------------------------------------

### List of Customers

```r output

subset_dataset <- reactive(
  dataset[,c("default_column",input$metric)]
)

renderTable(
  subset_dataset()
,
include.rownames = FALSE)

downloadHandler(filename = function() 
     paste('resultset-', Sys.Date(), '.csv', sep='')
   ,
     content = function(file) 
     write.csv(subset_dataset(), file, row.names = FALSE)
   
)
```

仪表板截图如下

谢谢!

【问题讨论】:

【参考方案1】:

没关系,我已经修复了它,在发布问题之前没有尝试过它是相当愚蠢的,但如果有人遇到类似的问题,解决方案就在这里。

下载处理函数也必须简单地放在侧边栏面板中,就可以了。

Inputs .sidebar
-----------------------------------------------------------------------

### Input Filters

```r input

## Metric 1
selectInput('metric',
            'Choose Metric',
            names(dataset %>% select(-default_column)),
            selected = "default_metric")

## Download Button
downloadButton('downloadData','Download Result Set')

downloadHandler(filename = function() 
     paste('resultset-', Sys.Date(), '.csv', sep='')
   ,
     content = function(file) 
     write.csv(subset_dataset(), file, row.names = FALSE)
   
)

【讨论】:

仅供参考,runtime: shiny_prerendered 文档也是如此

以上是关于如何修复 flexdashboard 中的下载按钮侧边栏问题的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 flexdashboard selectInput 中的 y

在 flexdashboard 中添加下载处理程序时分页被切断

文件下载后如何修复冻结页面?(TreeView SelectedNodeChanged中的TransmitFile)

runjs 在 flexdashboard 中更改 observeEvent 的位置?

如何修复 Angular 中的此错误并将数据输出到 PDF?

如何在 flexdashboard 中添加徽标?