2017-04-06 9 views
0

光沢を使って問題があります。私は私のアプリで使用したいすべてのファイルが保存されているフォルダを選択したいですか?1)作業ディレクトリをそのフォルダパスに設定するか、2)このフォルダ内のすべてのCSVデータをアプリケーションにアップロードして処理します。 1)のために私はshinyFilesパッケージを見つけたが、それは原因私のPC-に非常に非常に遅い-notをあるだけでなく、私にエラーを与える:私は、フォルダやフォルダを作成し、ボタンがクリック可能になり、Iを選択光沢のあるアプリの中のフォルダーまたはフォルダーのディレクトリを選択

Warning: Error in dir.create: invalid 'path' argument 
Stack trace (innermost first): 
    59: dir.create 
    58: dirCreate 
    57: observerFunc 
    2: runApp 
    1: shinyFilesExample 

それに新しいフォルダの名前を入れて、そのパネルの下にある "+"をクリックしてください。なぜ誰が知っていますか?にもかかわらず、この方法は動作しますが、非常に遅いです。以下のコード:

library(shiny) 
library(shinyFiles) 

ui<-fluidPage(sidebarLayout(

    sidebarPanel(
    shinyDirButton("dir", "Chose directory", "Upload") 
), 

    mainPanel(
    h4("output$dir"), 
    verbatimTextOutput("dir"), br() 

) 

)) 


server <- function(input,output,session){ 

    # dir 
    shinyDirChoose(input, 'dir', roots = getVolumes()) 
    dir <- reactive(input$dir) 
    output$dir <- renderPrint(dir()) 




} 
shinyApp(ui = ui, server = server 

別のオプションはありますか?おそらくfileInput機能を介してすべてのcsvデータをアップロードするのでしょうか?それとも別の方法ですか?ローカルではなくサーバー上で動作するようにしてください。choose.dirは正しい方法ではないかもしれません。 多くのありがとう

+0

またはすべてのcsvを含むフォルダを読み込むことは可能ですか。 fileInput()関数でzipとしてファイルされていますか?それを解凍してすべてのcsvファイルを抽出しますか? – JmO

+0

既に 'addResourcePath()'を試しましたか? – BigDataScientist

+0

ありがとうございます。私はこのプログラミングには新しいので、この関数が何をしているのか理解しようとしましたが、完全には得られませんでしたか?アプリのユーザーがリソースパスを参照して追加することはできますか?それとも以前設定した固定パスですか?フォルダは別の場所に保存されているので、アプリケーションを使用するすべてのユーザーのディレクトリが変更されるためです。 – JmO

答えて

1

これまでのところ、shinyfilesは私が知る限り、フォルダを入力する唯一の方法です。ブラウザーはセキュリティ上の理由からフォルダーを選択できないため、サーバー上では機能しません。

あなたはそれがサーバー上で作業することにしたい(それが実際に行うことができる場合、私は見当もつかない)場合ビュン道に行くための唯一の方法かもしれません

1

funktion getwd()があなたを取得現在の作業ディレクトリ。

server <- function(input,output,session){ 

    # dir 
    shinyDirChoose(input, 'dir', roots = c(name=getwd())) 
    dir <- reactive(input$dir) 
    output$dir <- renderPrint(dir()) 
} 
関連する問題