2016-09-25 2 views
0

私は光沢のあるアプリを作成しようとしています。このアプリは、ユーザーがアップロードした.csvファイルを使用します。私はfileInput()がデータフレームを格納する意味でどのように動作するのかを実際には理解していません。光沢のあるアプリにアップロードされたデータフレームの列にアクセスする方法は?

は、私はファイルをアップロードするには、このコードを使用しています:私はよく理解した場合

data_OBS = reactive({ 
    inFile <- input$file1 
    if (is.null(inFile)) 
     return(NULL) 
    read.csv(inFile$datapath, header=T, sep=",") 
    }) 

は、データフレームがdata_OBSでづけしなければなりません()。アップロードしたい.csvファイルに通常のR環境で "CL"という名前の列がある場合、data_OBS $ CLを使用してアクセスできるはずです。しかし、光沢のあるdata_OBS()は関数です。私はdata_OBS $ CL、data_OBS()$ CL、data_OBS(CL)を試しましたが、それらのどれも働いていませんでした。ちょうどアップロードされたデータにどのようにアクセスできますか?事前に

おかげで、

ベスト、nullを返しませんでしたそれを確認する最初の

答えて

-1

。また、強制的に復帰させることもできます(read.csv(...)) data_OBS()$ CLが動作するはずです。

0

observe,observeEvent,eventReactiveなどの反応的なコンテキスト内でのみ、data_OBS()$CLでアクセスできます。ここ

observeEventを使用して、最小限の例である:

ui <- fluidPage(
    fileInput("file1", "Choose CSV File"), 
    textOutput("text"), 
    actionButton("print", "Print to text output") 
) 

server <- function(input, output, session){ 
    data_OBS = reactive({ 
    inFile <- input$file1 
    if (is.null(inFile)) 
     return(NULL) 
    read.csv(inFile$datapath, header=T, sep=",") 
    }) 

    observeEvent(input$print, { 
    req(input$file1) # Doesn't do anything until a file is uploaded 
    output$text <- renderText(data_OBS()$CL) 
    }) 
} 

shinyApp(ui, server) 
関連する問題