2016-04-25 9 views
1

私は本当にこの問題を解決するのに苦労しています。私はここで検索しましたが、私は何が間違っているのか分かりません。私はこれは本当にばかげた質問かもしれないとして謝罪します。しかし、私は初心者です。 私は光沢のあるアプリケーションを配置しています。そこで、Shinyの入力に基づいてコンパイルされた既存のRマークダウンファイルをレンダリングします。最後に、私はPDFファイルのようなものを手に入れます。ダウンロードするオプションを除いてすべて正常に動作します。ダウンロードを押すと、最初から別のWebページセッションが開きます。 PDFファイルとして表示される最終ドキュメントをどのようにダウンロードすることができますか。本当に助けていただければ幸いです。シャイニー - マークダウンの出力をダウンロードできません

私は光沢のある例に基づいてこのコードを編集しましたが、それでもこのコードの最後までは到達できません。ダウンロードボタンをクリックすると、別のセッションが開きます。 編集コード

library(shiny) 
library(knitr) 
shinyServer(function(input, output,session) { 
    library(knitr) 
    output$markdown <- renderUI({ 
    HTML(markdown::markdownToHTML(knit('RMarkdown_pdf1.Rmd', quiet = TRUE))) 
    }) 
    output$downloadData <- downloadHandler(
    filename = function() { 
     paste('my-report', sep = '.', switch(
     input$format, PDF = 'pdf', HTML = 'html', Word = 'docx' 
    )) 
    }, 

    content = function(file) { 
     src <- normalizePath('report.Rmd') 

     # temporarily switch to the temp dir, in case you do not have write 
     # permission to the current working directory 
     owd <- setwd(tempdir()) 
     on.exit(setwd(owd)) 
     file.copy(src, 'report.Rmd') 

     library(rmarkdown) 
     out <- render('report.Rmd', switch(
     input$format, 
     PDF = pdf_document(), HTML = html_document(), Word = word_document() 
    )) 
     file.rename(out, file) 
    } 
) 
}) 

library(shiny) 
library(knitr) 

shinyUI(
    fluidPage(
    titlePanel("Drift Report - Beta Version 1.0"), 
    selectInput("n", 
       "Number of files:", 
       choices = c(1,2,3,4)), 
    checkboxInput("d", label = "Data Summary", value = FALSE), 
    checkboxInput("k", label = "Drift Plots", value = FALSE),  
    radioButtons("p", label = "Plot Type", 
         choices = list("Point Plot" = 1, "Cumm Plot"=2, "Both  - Side by Side"=3, "Both - One underneath the Other"=4),selected = NULL,inline=TRUE), 
    sliderInput("s","No of Plots", min = 1, max = 50, value = 10, width = "40%"), 
    submitButton("Apply Changes"), 
    conditionalPanel(
     condition = "input.n == 1", 
     fileInput("dat","File Upload for Analysis", accept = ".eff") 
    ), 
    radioButtons('format', 'Document format for Download', c('PDF', 'HTML', 'Word'), 
       inline = TRUE), 
    conditionalPanel(
     condition = "input.n == 2", 
     fileInput("dat","1st File Upload for Analysis"), 
     fileInput("dat3","2nd File Upload for Analysis") 
    ), 
    downloadButton('downloadData', 'Download'), 
    uiOutput('markdown') 
) 
) 

ログ

2016-04-26T18:50:56.177858+00:00 shinyapps[98254]: Warning in file(filename, "r", encoding = encoding) : 

2016-04-26T18:50:56.177862 + 00:00 shinyapps [98254]:ファイルを開くことができません 'datEff.R':そのようなファイルやディレクトリなし

2016-04-26T18:50:56.178919 + 00:00 shinyapps [98254]:線10-45(RMarkdown_pdf1.Rmd)から

2016-04-26T18を終了:00:50:56.180088 + 00 shinyapps [98254]:

2016-04-26T18:50:56.182026 + 00:00 shinyapps [98254]:接続を開くことができない

2016-04-26T18:50:56.182763 + 00:00 shinyapps [98254]:警告:ファイル内のエラー:接続

答えて

2

を開くことができませんあなたのダウンロードボタンのIDがdownloadDataですが、サーバーコードで、あなたがdownloadReportを使用。彼らは一致しません。

+0

ありがとう、そうです。今はダウンロードしますが、開こうとすると、ファイルが破損しているか、フォーマットがサポートされていない可能性があります。私は、Rstudio上でこのRmdファイルをpdfオプションで作成したにもかかわらず、それが必ずしも意味するわけではありませんが、出力ポストは実際にはpdf形式です。私はknit2pdfをやろうとしていますか?または他の提案? – manu

+0

私はこのリンクがあなたに役立つと思うhttp://shiny.rstudio.com/gallery/download-knitr-reports.html –

+0

こんにちは、私は例をチェックし、それを編集します。しかし、今私は "接続を開くことができません"というメッセージが表示されます。ログファイルを見ると、shinyappsはうまく動作しますが、markdownのドキュメント内にあるいくつかの関数が見つからないことがわかります。私はそれがそれと関係しているのだろうかと思います。私の目標は、この最終的なRmarkdownの出力を得てそのまま保存することでした。私は絶望的です... – manu

関連する問題