2017-03-22 7 views
5

Rで巨大なファイル(> 500mb)を処理する必要があります。特定の行数のチャンクにファイルを作成し、最後に集計値を取得します。私は私が私のアルゴリズムファイルをアップロードせずにブラウズボタンを使用してShiny UI(ディレクトリだけでなく)からファイルパスを取得する

fileConnection <-file("../output/name.txt", open="w") 

にファイルパスを養うことができるように(参照機能のいくつかの種類を使用して)ファイルを指定することが必要

は、光沢のあるUIベースからのみ、ファイルパスを取得する方法はありますユーザーが指定したアドレスに?私はShinyFilesパッケージを試しましたが、ファイルではなく選択するためのディレクトリだけを提供します。

ありがとう!

+0

'fileInput'を使用して、' input $ inpuId $ datapath'パラメータを使用してデータパスにアクセスすることができます。 – SBista

+0

@SBistaようこそ:) :)私はfileinputを与えると、UIは実際にファイルをアップロードします。私はファイルがアップロードされることを望んでいません(巨大すぎ、時間がかかります)。それは単にファイルのパスを取る必要があります。それは可能ですか? –

答えて

4

この機能は、shinyFilesパッケージで利用できます。この最小限の例を見てみましょう:

library(shiny) 
library(shinyFiles) 


    ui <- fluidPage(
    shinyFilesButton("Btn_GetFile", "Choose a file" , 
            title = "Please select a file:", multiple = FALSE, 
          buttonType = "default", class = NULL), 

       textOutput("txt_file")  
        ) 


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

    volumes = getVolumes() 
    observe({ 
    shinyFileChoose(input, "Btn_GetFile", roots = volumes, session = session) 

    if(!is.null(input$Btn_GetFile)){ 
     # browser() 
     file_selected<-parseFilePaths(volumes, input$Btn_GetFile) 
     output$txt_file <- renderText(as.character(file_selected$datapath)) 
    } 
    }) 
    } 
    shinyApp(ui = ui, server = server) 

これは役に立ちます。

+0

完璧!ありがとう@SBista –

関連する問題