web-dev-qa-db-ja.com

光沢のあるアプリ:downloadHandlerがファイルを生成しない

私は何が起こっているのか理解できません-すべてが機能しているようですが、私のアプリはファイルを生成しません-それはそれのように見えますがWindowsのRStudio 0.98.125で実行し、次の行を使用して実行します。runApp()以下は、非常に単純な再現可能な例です。

私の 'ui.R':

shinyUI(pageWithSidebar(

  headerPanel("My App"),

  sidebarPanel(
    numericInput('NumRuns','Number of runs',value=3,min=3,max=10,step=1),

    actionButton(inputId="goButton","Run!"),

    textInput("downloadData","Save My Data Frame:",value="Data Frame 1"),
    downloadButton('downloadData','Save my file!')

  ),

  mainPanel(
    tabPanel("Some Text",
             h4(textOutput("caption2")),
             tableOutput("mydf"),
             value=3))
  ))

私の「server.R」:

shinyServer(function(input,output){

  # Creating files for download at the end

  myout = reactive({
    if(input$goButton==0) return(NULL)

      nrruns=input$NumRuns
      mylist=NULL
      for(i in 1:nrruns){
        mylist[[i]]<-data.frame(a=rnorm(10),b=runif(10))
        names(mylist)[i]<-paste("dataframe",i,sep="")
      }
      return(mylist)
  })

     output$mydf <- renderTable({
     if(input$goButton==0) return(NULL)
     input$goButton
     isolate(
       myout()$dataframe1
     )
   })

  output$downloadData <- downloadHandler(
    filename = function() { paste(input$downloadData, " ",Sys.Date(),".csv",sep="") },
    content = function(file) {
      write.csv(myout()$dataframe1,file,row.names=F)
    }
  )

})
15
user3245256

ダウンロードボタンはRStudioビューアでは機能しないことに注意してください。友達がRStudioビューアを使用してアプリを表示している可能性があります。その場合は、外部Webブラウザーでアプリを開いてください([アプリの実行]ボタンの右側にドロップダウンリストがあります:ウィンドウで実行、ビューアーペインで実行、外部で実行、最後の1つを選択) )。

52
Mustansar Fiaz

提供されている例は、テストでCSVをダウンロードする場合に正常に機能します(Webブラウザーからの場合、つまり、RStudio内でRun appを使用しても同じ問題が発生しました)。

ダウンロードしたコンテンツではなく、ダウンロードボタンから「download.html」などを取得し続ける場合は、downloadButton( "myIdHere"、...)のIDがoutput $ myIdHere = downloadHandler( "output。 csv "、...)

また、光沢のあるモジュールを使用している場合(これを使用している場合はおそらく知っているはずです)、downloadButton(ns( "myIdHere")、...)を使用し、それでもoutput $ myIdHereがあることに注意してください。

9
Colin D

コリンDの発言に追加。 idNAMEが長すぎる可能性があります。

これが機能するアプリでテストしました:

     output$download_mastergroup <- downloadHandler(...)   #server side
     downloadButton('download_mastergroup ', 'Download overview') #ui side

これが機能しないこと:

     output$download_mastergroup_overview <- downloadHandler(...)   #server side
     downloadButton('download_mastergroup_overview ', 'Download overview') #ui side

だから、簡潔に言えば大丈夫です!

0
DaveR