1

ユーザーが複数のcsvファイルをアップロードできるアプリを作成しました。

これらのcsvは一緒に「rbind」され、「read.csv」になり、ファイル名であるdfに列が追加されます。

次に、df が処理されて、ダウンロード可能なさまざまなプロットが生成されます。これはローカルでは完全に機能しますが、デプロイ時には機能しません。以下のコードでエラーを再現しました。

ファイル (file, "rt") の警告: ファイル '*.csv' を開けません: そのようなファイルまたはディレクトリはありません

警告: ファイルにエラーがあります: 接続を開くことができません

UI:

    dashboardPage( skin = "black",
   dashboardHeader(title = "myApp"),
   dashboardSidebar(collapsed = TRUE,
   sidebarMenu(
    menuItem("Home", tabName = "dashboard1", icon = icon("home", lib = 
  "glyphicon"))
    ) 
    ),
   dashboardBody(
     tags$head(tags$style(HTML('
      .main-header .logo {
                          font-family: "Times New Roman", serif;
                          font-weight: bold;
                          font-size: 24px;
                          }
                          '))),

tabItems(
  tabItem(tabName = "dashboard1",
          fileInput("file1",
                    label="Input files:",
                    multiple = TRUE),
          downloadButton('plot.pdf', 'Download Data')
  )
  )

)
)

サーバ:

     library(shiny)
     library(shinydashboard)

     #server start
     function(input, output) {

       testinput<- reactive({
if(is.null(input$file1))
  return ()
else 
{
  nfiles = nrow(input$file1) 
  csv = list()
  for (i in 1 : nfiles)
  {

    csv[[i]] = read.csv(input$file1$datapath[i])

  }

  csv_names <- input$file1[['name']]
  mydata <- do.call(rbind, lapply(csv_names, function(x) cbind(read.csv(x), name=strsplit(x,'\\.')[[1]][1])))
  View(mydata)
    }
   })

     output$plot.pdf <- downloadHandler(
    filename = function() {
     "plot.pdf"
    },
    content = function(file) {
      withProgress(message = 'Your file is downloading',
               detail = 'This may take a minute or two...', value = 0, {
                 for (i in 1:10) {
                   incProgress(1/10)
                   Sys.sleep(0.5)}

                 pdf(file)
                 print(testinput())
                 dev.off()

               })
 }

 )


   }

どんな助けでも本当に感謝しています。私はたくさんのSOや他のフォーラムを検索しましたが、本当に行き詰まっています。

助けてください

4

1 に答える 1