所以我試圖用交互式閃亮位寫一個html R markdown文檔,允許用戶編輯圖形,然後將結果下載到pdf。但是,我嘗試這樣做的方式存在一些災難性的錯誤,因爲一旦html開始,它就會用pdf的內容覆蓋原始的降價文件 - 在編輯器中將其變爲完整的亂碼。閃亮的交互式文檔下載按鈕覆蓋原來的R markdown
我懷疑我發現了一種全新的方式在R失敗,但我一直無法找到其他人有這個問題。另外,我查看了有關閃亮的參考資料,現在我只是在圈子裏,所以任何幫助將不勝感激。
我使用的是Rstudio 1.0.44,rmarkdown 1.2和閃亮的0.14.2。小(不)工作示例:
---
title: "Minimum Failing Example"
author: "wittyalias"
date: "December 5, 2016"
output: html_document
runtime: shiny
---
```{r echo = FALSE}
library(ggplot2)
today <- Sys.Date()
inputPanel(downloadButton("dnld", label = "Download pdf"))
renderPlot({
# Example code from http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_page_(ggplot2)/
p1 <<- ggplot(ChickWeight, aes(x=Time, y=weight, colour=Diet, group=Chick)) +
geom_line() +
ggtitle("Growth curve for individual chicks")
p1
})
reactive({
fname <- paste0("Chick Weight - ", today, ".pdf")
output$dnld <- downloadHandler(filename = fname,
content = makethepdf(file))
makethepdf <- function(fname) {
pdf(fname,
width = 14,
height = 8.5)
p1
dev.off()
}
})
```
編輯:要明確:我希望用戶能夠下載圖形,其中一些將有不同的格式的多個頁面。用戶不會僅下載降價文檔的pdf版本。
非常感謝您的建議,但我需要在pdf中創建多個頁面,據我所知,ggsave不會允許我這樣做。另外,我在makethepdf函數的外部和內部插入了'print(fname)',並且返回了我期望的「Chick Weight .... pdf」。 – wittyalias