我在 Shiny Google 群组上问过这个问题,但是一旦发布它就会立即被删除,我不知道为什么。
所以我在这里问这个问题。
我知道如何上传从 Shiny 应用程序创建的文件,但我花了几个小时没有成功地找到如何将文件保存在硬盘上。请问你能告诉我一个方法吗?例如,我想保存使用 sink() 创建的文件或 RData 文件。
以下是我众多尝试之一的(人工)示例。sweaveSave() 函数不起作用。请不要关注情节,它在我的问题中不起作用。
服务器.R
library(shiny)
##
## function creating a Sweave report
##
createReport <- function(file){
sink(file)
cat(
"\\documentclass{article}\n
\\begin{document}\n
\\SweaveOpts{concordance=TRUE}
This is the Rnw file.\n
<<fig=TRUE>>=
plot(0,0)
@\n
\\end{document}\n")
sink()
}
##
## Shiny server
##
shinyServer(function(input, output) {
##
## Create plot
##
createPlot <- reactive({
# generate an rnorm distribution and plot it
titl <- paste0("Exponential distribution with rate ", round(input$parameter,2))
curve(dexp(x,rate=input$parameter), from=0, to=5, main=titl, ylab=NA, xlab=NA)
})
##
## output : plot
##
output$distPlot <- renderPlot({
createPlot()
})
##
## output : download Sweave file
##
output$sweavedownload <- downloadHandler(
filename="report00.Rnw",
content = createReport
)
##
## save Sweave file
##
sweaveSave <- reactive({
if(input$save){
createReport("REPORT00.Rnw")
}else{NULL}
})
})
用户界面
library(shiny)
shinyUI(pageWithSidebar(
# Application title
headerPanel("Hello Shiny!"),
# Sidebar panel
sidebarPanel(
sliderInput("parameter",
"Rate parameter:",
min = 0.0000000001,
max = 10,
value = 5),
checkboxInput("save", "Check to save and download")
),
# Main panel
mainPanel(
plotOutput("distPlot"),
conditionalPanel(
condition = "input.save",
downloadLink("sweavedownload", "Download")
)
)
))