4

Shiny Google グループでこの質問をしましたが、公開されるとすぐに削除されてしまい、理由がわかりません。

そこで、ここで質問します。

Shiny アプリケーションで作成したファイルをアップロードする方法は知っていますが、ハード ドライブにファイルを保存する方法を見つけるのに数時間費やしましたが、うまくいきませんでした。その方法を教えてください。たとえば、sink() または RData ファイルで作成されたファイルを保存したいと思います。

以下は、私の数多くの試みの 1 つの (人工的な) 例です。swaveSave() 関数は機能しません。プロットに注意を払わないでください。それは私の質問には関係ありません。

サーバー.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}
    })
})

ui.R

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")
    )
  )
))
4

1 に答える 1

1

ShinyFiles パッケージを使用すると、作業が簡単になります。

install.package('shinyFiles') 
require(shinyFiles)
shinyFilesExample()
于 2016-01-20T04:09:21.640 に答える