R RMarkdown中的快速下载按钮

R RMarkdown中的快速下载按钮,r,rstudio,r-markdown,shiny,R,Rstudio,R Markdown,Shiny,我似乎无法让闪亮的downloads按钮在带有runtime:闪亮的的rmarkdown文档中工作。这里有一个与我正在做的类似的例子 --- title: "R Document" runtime: shiny --- ```{r, echo = FALSE} numericInput("SS", "Selecr SS", min = 1, max = 100, value = 1) RandomSample <- reactive({ data.frame(X =

我似乎无法让闪亮的
downloads按钮在带有
runtime:闪亮的
的rmarkdown文档中工作。这里有一个与我正在做的类似的例子

 ---
 title: "R Document"
 runtime: shiny
 ---

 ```{r, echo = FALSE}
 numericInput("SS", "Selecr SS", min = 1, max = 100, value = 1)

 RandomSample <- reactive({
   data.frame(X = rnorm(100), Y = rnorm(100))
 })

 downloadButton("download", "Download")

 renderPlot({
   plot(RandomSample()[(1:input$SS), "X"], RandomSample()[(1:input$SS), "Y"])
 })

 renderTable({
   RandomSample()[(1:input$SS),]
 })
 ```
---
标题:“R文件”
运行时间:闪亮
---
```{r,echo=FALSE}
数值输入(“SS”,“Selecr SS”,最小值=1,最大值=100,值=1)

我想你要找的是

以下是您的it工作示例:

---
title: "R Document"
runtime: shiny
output: html_document
---
```{r, echo=FALSE}

 numericInput("SS", "Selecr SS", min = 1, max = 100, value = 1)

 RandomSample <- reactive({
   data.frame(X = rnorm(100), Y = rnorm(100))
 })

 downloadHandler(filename = function() { 
    return(paste('Example', input$SS, '.csv', sep=''))

 }, content = function(file) {
   write.csv(RandomSample(), file)
 })

 renderPlot({
   plot(RandomSample()[(1:input$SS), "X"], RandomSample()[(1:input$SS), "Y"])
 })

 renderTable({
   RandomSample()[(1:input$SS),]
 })
 ```
---
标题:“R文件”
运行时间:闪亮
输出:html\u文档
---
```{r,echo=FALSE}
数值输入(“SS”,“Selecr SS”,最小值=1,最大值=100,值=1)

RandomSample下载按钮有点奇怪。如果您查看函数,它是:

function (outputId, label = "Download", class = NULL, ...)  {
aTag <- tags$a(id = outputId, class = paste("btn btn-default shiny-download-link", 
    class), href = "", target = "_blank", download = NA, 
    icon("download"), label, ...)
}
这意味着
downloadButton
的返回值是不可见的,因此它不会生成html来进行降价(我相信这可能是为shiny设计的,但如果有人能解释为什么我想知道)。您可以通过编写新函数来更改此行为:

downloadButtonRmd <- function (outputId, label = "Download", class = NULL, ...)  {
     tags$a(id = outputId, class = paste("btn btn-default shiny-download-link", 
        class), href = "", target = "_blank", download = NA, 
        icon("download"), label, ...)
 }

downloadbutonrmd这正是我要找的。谢谢你!太好了,我很高兴!如果答案对你有效,请接受它。
downloadButtonRmd <- function (outputId, label = "Download", class = NULL, ...)  {
     tags$a(id = outputId, class = paste("btn btn-default shiny-download-link", 
        class), href = "", target = "_blank", download = NA, 
        icon("download"), label, ...)
 }
---
title: "R Document"
runtime: shiny
output: html_document
---


```{r}
downloadButtonRmd <- function (outputId, label = "Download", class = NULL, ...)  {
     tags$a(id = outputId, class = paste("btn btn-default shiny-download-link", 
        class), href = "", target = "_blank", download = NA, 
        icon("download"), label, ...)
 }
```



```{r, echo=FALSE}

numericInput("SS1", "Select SS1", min = 1, max = 100, value = 1)
numericInput("SS2", "Select SS2", min = 1, max = 100, value = 1)

downloadButtonRmd("down1", label = "Download1")
downloadLink("down2", label = "Download2")


RandomSample <- reactive({
   data.frame(X = rnorm(100), Y = rnorm(100))
 })

output$down1 <- downloadHandler(filename = function() { 
    return(paste('Example', input$SS1, '.csv', sep=''))

 }, content = function(file) {
   write.csv(RandomSample(), file)
 })

output$down2 <- downloadHandler(filename = function() { 
    return(paste('Example', input$SS2, '.csv', sep=''))

 }, content = function(file) {
   write.csv(RandomSample(), file)
 })

renderPlot({
   plot(RandomSample()[(1:input$SS1), "X"], RandomSample()[(1:input$SS1), "Y"])
 })

renderPlot({
   plot(RandomSample()[(1:input$SS2), "X"], RandomSample()[(1:input$SS2), "Y"])
 })

renderTable({
   RandomSample()[(1:input$SS1),]
 })

renderTable({
   RandomSample()[(1:input$SS2),]
 })


 ```